PHP에서 Excel 생성
페이지 정보
작성자 서방님 댓글 0건 조회 114회 작성일 11-06-02 13:42본문
PHP에서 바이너리 Excel 파일을 어떻게 생성할 까? 고민하던 중 PHPExcel이란 프로젝트를 찾았다.
게다가 Excel 2007을 지원한다는 점이 매력적이었다.
바이너리 Excel 파일을 생성하는 이유는 호환성이 가장 좋기 때문이다.
특히 Mac OS X에서 Pages로 HTML이나 XML로 된 Excel 파일을 열면 그냥 텍스트로 출력된다.
데이터 1000개를 가지는 시트를 만들고 1000개가 넘으면 다른 시트를 추가하는 Excel 파일 생성 예:
require_once "PHPExcel.php";
require_once "PHPExcel/IOFactory.php";
$maxRow = 10001;
$excelFile = PROJECT_PATH."/tmp/data_export_".date("Ymd_Hi").".xlsx";
$excel = new PHPExcel();
$excel->getProperties()->setTitle("데이터 내보내기");
$excel->getProperties()->setSubject($excel->getProperties()->getTitle());
if($webList->getTotal() > $maxRow) {
$totalSheet = $webList->getTotal() / $maxRow;
for($i = 1; $i < $totalSheet; $i++) {
$excel->createSheet();
}
}
$sheetNo = 0;
$rowNo = 1;
foreach($webList->getList() as $item) {
if($rowNo == 1) {
$excel->setActiveSheetIndex($sheetNo);
$excel->getActiveSheet()->setTitle("예제 데이터");
$excel->getActiveSheet()->getDefaultStyle()->getFont()->setName("Arial");
$excel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);
$excel->getActiveSheet()->setCellValue("A$cellNo", "번호");
$excel->getActiveSheet()->setCellValue("B$cellNo", "보내는 사람");
$excel->getActiveSheet()->setCellValue("C$cellNo", "받는 사람");
..
$rowNo++;
}
$excel->getActiveSheet()->setCellValue("A$cellNo", $item["no"]);
$excel->getActiveSheet()->setCellValue("B$cellNo", $item["sender"]);
$excel->getActiveSheet()->setCellValue("C$cellNo", $item["receiver"]);
...
$rowNo++;
if($rowNo > $maxRow) {
$rowNo = 1;
$sheetNo++;
}
}
$excel->setActiveSheetIndex(0);
$writer = PHPExcel_IOFactory::createWriter($excel, "Excel2007");
$writer->save($excelFile);
댓글목록
등록된 댓글이 없습니다.