本文整理 PHPExcel 開發中最高頻的操作片段,方便快速查閱與複製套用。
<?php
require_once 'PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()
->setCreator('Sam.c')
->setLastModifiedBy('Sam.c Test')
->setTitle('Microsoft Office Excel Document')
->setSubject('Test')
->setDescription('Test')
->setKeywords('Test')
->setCategory('Test result file');
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('phpexcel測試');
$objPHPExcel->getDefaultStyle()->getFont()->setName('宋體');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
?>
// Excel 2003 (.xls)
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="export.xls"');
$objWriter->save('php://output');
// PDF
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="export.pdf"');
$objWriter->save('php://output');
| 功能 | 程式碼片段 |
|---|---|
| 設定欄寬 | $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15); |
| 設定行高 | $objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(30); |
| 合併儲存格 | $objPHPExcel->getActiveSheet()->mergeCells('A1:P1'); |
| 寫入內容 | $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello Baby'); |
| 水平置中 | $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); |
| 垂直置中 | $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); |
| 字體加粗+紅色 | $style = ['font'=>['bold'=>true, 'color'=>['argb'=>'FFFF0000']]]; $objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($style); |
| 背景色 | $objPHPExcel->getActiveSheet()->getStyle('H5')->getFill()->getStartColor()->setARGB('00ff99cc'); |
| 數字格式(三位小數) | $objPHPExcel->getActiveSheet()->getStyle('F1')->getNumberFormat()->setFormatCode('0.000'); |
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Logo');
$objDrawing->setPath('test.jpg');
$objDrawing->setWidth(400);
$objDrawing->setHeight(123);
$objDrawing->setCoordinates('J1');
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
$objPHPExcel->getActiveSheet()->setCellValue('H8', '燕南天');
$objPHPExcel->getActiveSheet()->getCell('H8')->getHyperlink()->setUrl('https://www.bkjia.com/');
$style = [
'borders' => [
'outline' => [
'style' => PHPExcel_Style_Border::BORDER_THIN,
'color' => ['argb' => 'FF000000'],
],
],
];
$objPHPExcel->getActiveSheet()->getStyle('A4:E10')->applyFromArray($style);
$objPHPExcel->createSheet();
$objActSheet = $objPHPExcel->getSheet(1);
$objActSheet->setTitle('表2');
提醒: PHPExcel 已不再維護,建議新專案改用 PhpSpreadsheet,API 高度相容。