目錄
Toggle什麼是PHPExcel?
PHPExcel是一個強大的PHP庫,用於讀取和寫入Office Excel格式(.xls和.xlsx)。它允許開發者在PHP中輕鬆地創建、操作和讀取Excel文件,而不需要依賴Excel程序本身。
安裝PHPExcel
通過Composer安裝
Composer是PHP的包管理器,可以輕鬆地下載並安裝包括PHPExcel在內的各種PHP庫。要使用Composer安裝PHPExcel,你可以執行以下命令:
composer require phpoffice/phpexcel
手動安裝
如果你不使用Composer,你也可以手動下載PHPExcel庫並將其包含到你的項目中。你可以從GitHub頁面下載最新版本的PHPExcel。下載完成後,將解壓縮的文件夾放入你的項目目錄中,然後根據以下示例包含PHPExcel:
require 'path/to/PHPExcel.php';
基本使用方式
創建一個新的Excel文件
使用PHPExcel創建一個新的Excel文件非常簡單。以下是創建一個簡單的Excel文件並保存的範例:
// 載入PHPExcel類
require 'path/to/PHPExcel.php';
// 創建一個新的對象
$objPHPExcel = new PHPExcel();
// 設置文件屬性
$objPHPExcel->getProperties()->setCreator('Me')
->setLastModifiedBy('Me')
->setTitle('Office XLSX Test Document')
->setSubject('Office XLSX Test Document')
->setDescription('Test document for Office XLSX, generated using PHP classes.')
->setKeywords('office PHPExcel php')
->setCategory('Test result file');
// 添加數據
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello')
->setCellValue('B2', 'world!')
->setCellValue('C1', 'Hello')
->setCellValue('D2', 'world!');
// 命名工作表
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// 將文件保存到本地
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('hello_world.xlsx');
讀取Excel文件
讀取Excel文件同樣簡單。以下是一個讀取Excel文件並輸出其內容的範例:
// 載入PHPExcel類
require 'path/to/PHPExcel.php';
require 'path/to/PHPExcel/IOFactory.php';
// 加載Excel文件
$objPHPExcel = PHPExcel_IOFactory::load('hello_world.xlsx');
// 獲取第一個工作表
$sheet = $objPHPExcel->getSheet(0);
// 獲取行數和列數
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
// 遍歷工作表內容
for ($row = 1; $row <= $highestRow; $row++) {
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
echo implode("t", $rowData[0]) . PHP_EOL;
}
其他進階功能
設置單元格樣式
當創建Excel文件時,你可能需要設置單元格的樣式,例如字體、顏色、對齊方式等。以下範例展示了如何設置單元格樣式:
// 設置單元格字體樣式
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(12);
// 設置單元格背景顏色
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->applyFromArray(
array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'startcolor' => array('rgb' => 'FF0000')
)
);
// 設置單元格邊框
$objPHPExcel->getActiveSheet()->getStyle('A1')->getBorders()->applyFromArray(
array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN,
'color' => array('rgb' => '000000')
)
)
);
合併單元格
有時你可能需要合併多個單元格。以下範例展示了如何合併單元格:
// 合併單元格
$objPHPExcel->getActiveSheet()->mergeCells('A1:C1');
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Merged Cells');