使用PhpSpreadsheet高效導出客戶產品信息到excel表格
本文將詳細講解如何利用PhpSpreadsheet庫,將包含客戶和產品信息的復雜數組數據導出為結構清晰的excel表格,并實現單元格合并以提升可讀性。
假設我們擁有如下結構的數組數據:
$data = [ "customer" => "西卡若卡", "product" => [ [ "name" => "瓶-500ml塑料瓶", "parts" => "24牙35克", "rongliang" => "500ml" ], [ "name" => "內塞-500ml塑料瓶", "parts" => "19小孔內塞+蓋板", ], [ "name" => "蓋子-500ml塑料瓶", "parts" => "24牙雙層pp蓋", ], ] ];
我們的目標是生成一個Excel表格,第一行顯示客戶名稱“西卡若卡”,后續行顯示產品信息(名稱、部件、容量)。如果產品信息中缺少容量,則需要合并相應的單元格,保持表格的整潔美觀。
為此,我們將使用PhpSpreadsheet的單元格合并功能。 以下代碼演示了如何實現:
立即學習“PHP免費學習筆記(深入)”;
use PhpofficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // 寫入客戶信息 $sheet->setCellValue('A1', '客戶'); $sheet->setCellValue('B1', $data['customer']); // 寫入產品信息并處理單元格合并 $row = 2; foreach ($data['product'] as $product) { $sheet->setCellValue('A' . $row, '產品名稱'); $sheet->setCellValue('B' . $row, $product['name']); $sheet->setCellValue('C' . $row, '部件'); $sheet->setCellValue('D' . $row, $product['parts']); if (isset($product['rongliang'])) { $sheet->setCellValue('E' . $row, '容量'); $sheet->setCellValue('F' . $row, $product['rongliang']); } else { // 合并E列和F列的單元格 $sheet->mergeCells('E' . $row . ':F' . $row); } $row++; } // 保存Excel文件 $writer = new Xlsx($spreadsheet); $writer->save('customer_product_info.xlsx');
這段代碼首先創建了一個Spreadsheet對象和一個工作表。然后,它寫入客戶信息,接著循環遍歷產品信息,寫入產品名稱、部件信息。如果存在容量信息,則寫入容量;否則,合并“容量”列的兩個單元格。最后,將生成的Spreadsheet對象保存為customer_product_info.xlsx文件。 通過這種方式,我們便可以輕松地生成一個格式規范、易于閱讀的Excel報表。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END