登录
首页 >  文章 >  php教程

使用PhpSpreadsheet导出客户产品信息并合并行到Excel

时间:2025-04-07 10:57:42 474浏览 收藏

本文介绍如何使用PhpSpreadsheet库将客户和产品信息(包含复杂嵌套数组)导出到Excel表格,并实现单元格合并。 文章以一个包含客户名称及多个产品信息的示例数组为例,详细讲解了如何利用PhpSpreadsheet加载库、写入客户信息并合并单元格(例如合并A1到C1单元格显示客户名称)、写入产品信息到后续行,最终生成包含合并单元格的Excel文件(example.xlsx)。 该方法高效灵活,可扩展性强,适用于处理各种复杂的数据结构,是高效处理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完成数据导出和单元格合并:

  1. 加载库并创建对象:

    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
  2. 写入客户信息并合并单元格:

    $sheet->setCellValue('A1', '客户: ' . $data['customer']);
    $sheet->mergeCells('A1:C1'); // 合并A1到C1单元格
  3. 写入产品信息:

    $row = 2; // 从第二行开始写入
    foreach ($data['product'] as $product) {
        $sheet->setCellValue('A' . $row, $product['name']);
        $sheet->setCellValue('B' . $row, $product['parts']);
        if (isset($product['rongliang'])) {
            $sheet->setCellValue('C' . $row, $product['rongliang']);
        }
        $row++;
    }
  4. 保存Excel文件:

    $writer = new Xlsx($spreadsheet);
    $writer->save('example.xlsx');

通过以上步骤,即可生成包含合并单元格和嵌套数组数据的Excel文件。此方法具有良好的灵活性和可扩展性,适用于处理各种复杂的数组结构。

理论要掌握,实操不能落!以上关于《使用PhpSpreadsheet导出客户产品信息并合并行到Excel》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>