利用PhpSpreadsheet導出excel文件并實現行合并
本文演示如何使用PhpSpreadsheet庫將數組數據導出為Excel文件,并實現指定行的合并。假設我們有一個包含客戶和產品信息的數組,需要將其格式化并輸出到Excel文件中。
數組結構如下:
$data = [ "customer" => "西卡若卡", "product" => [ [ "name" => "瓶-500ml塑料瓶", "parts" => "24牙35克", "rongliang" => "500ml" ], [ "name" => "內塞-500ml塑料瓶", "parts" => "19小孔內塞+蓋板", ], [ "name" => "蓋子-500ml塑料瓶", "parts" => "24牙雙層pp蓋", ], ] ];
目標Excel文件格式如下:
| 客戶 | 產品名稱 | 零件 | 容量 | | ------- | ------------------- | --------------- | ----- | | 西卡若卡 | 瓶-500ml塑料瓶 | 24牙35克 | 500ml | | | 內塞-500ml塑料瓶 | 19小孔內塞+蓋板 | | | | 蓋子-500ml塑料瓶 | 24牙雙層pp蓋 | |
實現步驟:
立即學習“PHP免費學習筆記(深入)”;
- 加載PhpSpreadsheet庫并初始化工作表:
require 'vendor/autoload.php'; // 假設你已通過composer安裝了phpspreadsheet use PhpofficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet();
- 寫入表頭:
$sheet->setCellValue('A1', '客戶'); $sheet->setCellValue('B1', '產品名稱'); $sheet->setCellValue('C1', '零件'); $sheet->setCellValue('D1', '容量');
- 寫入數據并合并單元格:
$row = 2; $sheet->setCellValue("A{$row}", $data['customer']); foreach ($data['product'] as $product) { $sheet->setCellValue("B{$row}", $product['name']); $sheet->setCellValue("C{$row}", $product['parts']); $sheet->setCellValue("D{$row}", $product['rongliang'] ?? ''); // 使用空字符串處理缺失的容量 $row++; } // 合并'客戶'列的單元格 $sheet->mergeCells("A2:A{$row-1}");
- 保存Excel文件:
$writer = new Xlsx($spreadsheet); $writer->save('output.xlsx');
這段代碼首先初始化PhpSpreadsheet對象和工作表,然后寫入表頭數據。接著,它迭代處理產品數據,將數據寫入相應的單元格。最后,它使用mergeCells()方法合并’客戶’列從第二行到最后一行的數據單元格,從而達到預期的效果。 確保你的項目中已正確安裝并包含PhpSpreadsheet庫。 如有任何錯誤,請檢查你的PhpSpreadsheet安裝和包含路徑。
通過以上步驟,即可成功使用PhpSpreadsheet庫生成包含合并單元格的Excel文件。 記得參考PhpSpreadsheet官方文檔獲取更詳細的信息和更多高級功能。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END