如何使用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 分享