[PHPExcel] PHP 에서 데이터를 엑셀로 쓰고 다운로드 해보자!
먼저 PHP 에서 데이터를 엑셀 파일로 쓰기 위해서는 PHPExcel 이라는 라이브러리가 필요합니다.
PHPExcel 파일은 아래 링크를 통해서 다운로드 받자!
다운로드 한 파일을 압축해제하면 Classes, Documentation, Examples 파일 등이 존재 할 것입니다.
이 중 Classes 폴더만 있으면 됩니다.
해당 폴더를 사용하고자 하는 프로젝트 폴더 내에 복사 시키면 사용 준비 끝!!!
여기서 할 것은 배열 Array 를 엑셀파일로 쓰는 것을 할 것입니다.
소스에 대한 설명은 중간중간에 있는 주석으로 대신하겠습니다.
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); ini_set('memory_limit','-1'); ini_set("max_execution_time","0"); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); date_default_timezone_set('Asia/Seoul'); /** 위 소스는 크게 신경 쓰지 않아도 됨 **/ /** PHPExcel 라이브러리 포함 **/ require_once 'Classes/PHPExcel.php'; /** PHPExcel 클래스 선언 **/ $objPHPExcel = new PHPExcel(); // Set document properties // 이 또한 크게 신경 쓰지 않아도 되겠습니다. $objPHPExcel->getProperties()->setCreator('Maarten Balliauw') ->setLastModifiedBy('Maarten Balliauw') ->setTitle('Office 2007 XLSX Test Document') ->setSubject('Office 2007 XLSX Test Document') ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.'); /** 아래 부분이 엑셀에 쓰는 부분입니다. **/ /** A1 에 '이름' B1 에 성별을 각각 썼네요. **/ // Create the worksheet $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', '이름') ->setCellValue('B1', '성별'); /** 아래 배열을 엑셀에 쓸 것입니다. **/ $tmpArray = array( array( 'NAME' => '홍길동1', 'GENDER' => '남자' ), array( 'NAME' => '홍길동2', 'GENDER' => '여자' ), array( 'NAME' => '홍길동3', 'GENDER' => '남자' ) ); /** 위 배열 $tmpArray 를 A2 부터 차례대로 쓴다는 말입니다. **/ $objPHPExcel->getActiveSheet()->fromArray($tmpArray, NULL, 'A2'); /** A1 에서 부터 B1 까지를 Bold 처리 함 **/ $objPHPExcel->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true); /** A1 에서 B1 까지의 스타일을 정의 함 **/ $objPHPExcel->getActiveSheet()->getStyle('A1:B1')->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FFCCFFCC') ), 'borders' => array( 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN), 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM) ) ) ); /** 각각의 셀 크기를 지정함 **/ $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); /** 영영을 지정하여 가로 세로의 정렬을 정의함 **/ $objPHPExcel->getActiveSheet()->getStyle('A1:H' . (count($tmpArray) + 1))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('A1:H' . (count($tmpArray) + 1))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); /** 위에서 쓴 엑셀을 저장하고 다운로드 합니다. **/ header('Content-Type: application/vnd.ms-excel;charset=utf-8'); header('Content-type: application/x-msexcel;charset=utf-8'); header('Content-Disposition: attachment;filename="테스트엑셀파일.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); ?>
완료 된 PHP 파일을 실행해서 엑셀파일을 다운로드 해보자.
그리고 실행해 보면 아래 와 같이 엑셀파일이 완성되었을 것입니다.
'『IT/개발』 > PHP' 카테고리의 다른 글
PHP Notice: Undefined index: 발생 시 처리 방법 (0) | 2014.10.22 |
---|---|
PHP 에 큐브리드(CUBRID) PDO 드라이버 설치 하기. (0) | 2014.10.21 |
Laravel 프레임워크에 Twitter Bootstrap 추가하기 (0) | 2014.09.18 |
PHP 프레임워크 Laravel 설치 및 시작하기 (0) | 2014.09.18 |
[PHP 유효성 검사] 비밀번호 정규식 검사하기 (영문, 숫자 조합) (0) | 2014.08.18 |