PHPExcel

1 6

https://github.com/PHPOffice/PHPExcel

http://www.codeplex.com/PHPExcel

PHP로 엑셀파일을 제어/읽기/쓰기 할 수 있게 해준다.
(xls,xlsx,csv,ods,xml,html,slk,pdf 등등)

조금 사용해봤는데

  • reader,writer 전부 됨
  • writer는 euc-kr 사용 못 함(전부 utf-8)
  • 7만건을 넣고 파일로 저장을 해봤는데 엄청나게 오래걸림(메모리 256MB 이상 사용됨)
  • 거의 완벽한 엑셀파일을 만들 수 있음
  • 라이센스는 GNU의 LGPL

  • 미지원 기능
    • 통합문서 암호화 : 지원 안됨.
      • 시트 보호용 암호 지정은 됨.(제작자가 말하길 MS쪽 설명에 해당 라이브러리를 찾을 수 없다네.(찾을 수 있다면 역으로 풀 수 있는게 되니깐.. 그런것 같네)

간단 예제

1. 배경색, 글자색, 하이퍼링크, 셀타입


$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("text")
->setLastModifiedBy("text")
->setTitle('text')
->setSubject('text')
->setDescription('text')
->setKeywords('text')
->setCategory('text');

$sheet = $objPHPExcel->setActiveSheetIndex(0);
$i=1;
$sheet->setCellValue('A'.$i, '번호')
->setCellValue('B'.$i, '설명')
->setCellValue('C'.$i, '가격')
->setCellValue('D'.$i, '상품명');
$sheet->getStyle('A1:D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A1:D1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$sheet->getStyle('A1:D1')->getFill()->getStartColor()->setARGB('FF808080');
$sheet->getStyle('A1:D1')->getFont()->setBold(true);
$sheet->getStyle('A1:D1')->getFont()->getColor()->setARGB('FFFFFFFF');
//
$sheet->getColumnDimension('A')->setWidth(14);
$sheet->getColumnDimension('B')->setWidth(14);
$sheet->getColumnDimension('C')->setWidth(14);
$sheet->getColumnDimension('D')->setWidth(100);
$sheet->getStyle('A2:A'.(count($res['items'])+1))->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);

foreach ($items as $r) {
$i++;
$url = 'http://test.com/'.$r['no'];
$objRichText3 = new PHPExcel_RichText();
$objRichText3->createText("Hello ");
$sheet->setCellValue('A'.$i, $r['no'])
->setCellValue('B'.$i, $r['desc'])
->setCellValue('C'.$i, $r['amt'])
->setCellValue('D'.$i, $r['title']);
$a_text = new PHPExcel_RichText();
$a_text->createText($r['no']);
$a_text->createTextRun($r['no'])->getFont()->setUnderline(true);
$sheet->getCell('A'.$i)->setValue($a_text);
$sheet->getCell('A'.$i)->getHyperlink()->setUrl($url);
}

//--- 메모리 초기화
$objPHPExcel->disconnectWorksheets();
$objPHPExcel->garbageCollect();
unset($objPHPExcel);
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📅 달력형