728x90
안녕하세요. 은은한 개발자입니다.
1. PHPExcel 다운로드
먼저 위 github 링크로 들어가 압축파일(.zip) 을 다운받습니다.
2. third_party 폴더에 라이브러리 등록
다운받은 압축 파일을 열어 Classes 파일 안의 디렉토리와 파일을 위와 같이 application/third_party 폴더에 복사합니다.
3. Excel 클래스 생성
그리고 application/libraries 디렉토리에 Excel.class.php 라는 파일명의 클래스를 생성하고 아래의 내용을 넣습니다.
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
require_once APPPATH . "/third_party/PHPExcel.php";
class Excel extends PHPExcel
{
public function __construct()
{
parent::__construct();
}
}
그러면 이제 설치는 완료 됬고 간단한 예제를 실행 해보겠습니다.
4. 예제
/**
* 엑셀 쓰기
*/
public function excel_write()
{
// PHPExcel 라이브러리 로드
$this->load->library('excel');
// 워크시트 1번째는 활성화
$this->excel->setActiveSheetIndex(0);
// 워크시트 이름 지정
$this->excel->getActiveSheet()->setTitle('example');
// A1의 내용을 입력
$this->excel->getActiveSheet()->setCellValue('A1', '여기에 텍스트 입력');
// A1의 폰트를 변경
$this->excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
// A1의 글씨를 볼드로 변경
$this->excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
// A1부터 D1까지 셀 병합
$this->excel->getActiveSheet()->mergeCells('A1:D1');
// A1의 컬럼 가운데 정렬
$this->excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$filename = 'example.xlsx'; // 엑셀 파일명
header('Content-Type: application/vnd.ms-excel; charset=utf-8;');
header('Content-Disposition: attachment;filename="' . $filename . '"'); // 브라우저에서 받을 파일명
header('Cache-Control: max-age=0'); // no cache
// Excel2007 포맷으로 저장
$objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel2007');
// 서버에 파일을 쓰지 않고 바로 다운로드
$objWriter->save('php://output');
}
/**
* 엑셀 읽기
*/
public function excel_read()
{
// PHPExcel 라이브러리 로드
$this->load->library('excel');
// 엑셀 파일 읽기
$objPHPExcel = PHPExcel_IOFactory::load(APPPATH . 'upload/example.xlsx');
// 엑셀 내용을 배열로 변환
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
echo "<xmp>";
var_dump($sheetData);
echo "</xmp>";
}
APPPATH 및에 upload 경로를 만들고 다운받은 example.xlsx 파일을 넣어 엑셀 읽기를 실행합니다.
여기까지 코드이그나이터에서 엑셀 라이브러리(PHPExcel) 을 사용하는 방법에 대해 간단한 예제를 포함해서 알아봤습니다. 필자의 경우 라이브러리를 사용하면서 편리함도 있었지만 엑셀로 만들어야 할 데이터의 양이 많아 질수록 속도 효율이 좋지 않음을 경험하기도 했습니다. 따라서 때에 맞게 잘 사용하시면 좋을 것 같습니다.
다음에는 라이브러리를 사용하지 않고 다운받는 방법과 CSV 다운로드에 대해서도 포스팅 해보도록 하겠습니다.
728x90
'Develop > PHP' 카테고리의 다른 글
PHP 에서 alert 사용하기 (0) | 2020.02.28 |
---|---|
코드이그나이터 CSV 다운로드 (0) | 2020.02.28 |
PHP 특정 디렉토리 하위 파일 목록 가져오는 방법 (0) | 2020.02.27 |
PHP 날짜 차이 일수 얻는 방법 (0) | 2020.02.27 |
코드이그나이터 formdata csrf토큰 사용 Ajax통신, The action you have requested is not allowed. (0) | 2020.02.27 |
댓글