如何使用PhpSpreadsheet合并行輸出Excel表格以展示客戶和產品信息?

如何使用PhpSpreadsheet合并行輸出Excel表格以展示客戶和產品信息?

使用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
喜歡就支持一下吧
點贊5 分享