PHP에서 Excel 생성 > php

본문 바로가기
사이트 내 전체검색

php

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);

 

 

댓글목록

등록된 댓글이 없습니다.

Total 612건 39 페이지
게시물 검색

회원로그인

접속자집계

오늘
276
어제
225
최대
1,347
전체
155,035
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.