利用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盖 | |
实现步骤:
- 加载PhpSpreadsheet库并初始化工作表:
require 'vendor/autoload.php'; // 假设你已通过composer安装了phpspreadsheet use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $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官方文档获取更详细的信息和更多高级功能。
以上就是在Phpspreadsheet中如何将数组数据导出为Excel文件并实现行合并?的详细内容,更多请关注资源网其它相关文章!
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。