0

0

如何使用PhpSpreadsheet将数组数据导出并合并行生成Excel表格?

聖光之護

聖光之護

发布时间:2025-03-23 09:38:18

|

352人浏览过

|

来源于php中文网

原创

使用phpspreadsheet导出并合并excel表格行数据

本文介绍如何利用PhpSpreadsheet库将数组数据导出为Excel表格,并实现行合并效果。假设您有一个如下所示的数组:

[
    "customer" => "西卡若卡",
    "product" => [
        [
            "name" => "瓶-500ml塑料瓶",
            "parts" => "24牙35克",
            "rongliang" => "500ml"
        ],
        [
            "name" => "内塞-500ml塑料瓶",
            "parts" => "19小孔内塞+盖板",
        ],
        [
            "name" => "盖子-500ml塑料瓶",
            "parts" => "24牙双层pp盖",
        ],
    ]
]

目标是将其导出为Excel表格,并合并客户名称所在的行,效果如下图所示:

如何使用PhpSpreadsheet将数组数据导出并合并行生成Excel表格?

PhpSpreadsheet 提供了 mergeCells() 方法来合并单元格。以下代码演示了如何使用该方法实现行合并:

bee餐饮点餐外卖小程序
bee餐饮点餐外卖小程序

bee餐饮点餐外卖小程序是针对餐饮行业推出的一套完整的餐饮解决方案,实现了用户在线点餐下单、外卖、叫号排队、支付、配送等功能,完美的使餐饮行业更高效便捷!功能演示:1、桌号管理登录后台,左侧菜单 “桌号管理”,添加并管理你的桌号信息,添加以后在列表你将可以看到 ID 和 密钥,这两个数据用来生成桌子的二维码2、生成桌子二维码例如上面的ID为 308,密钥为 d3PiIY,那么现在去左侧菜单微信设置

下载

立即学习PHP免费学习笔记(深入)”;

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

$data = [
    "customer" => "西卡若卡",
    "product" => [
        [
            "name" => "瓶-500ML塑料瓶",
            "parts" => "24牙35克",
            "rongliang" => "500ML"
        ],
        [
            "name" => "内塞-500ML塑料瓶",
            "parts" => "19小孔内塞+盖板",
        ],
        [
            "name" => "盖子-500ML塑料瓶",
            "parts" => "24牙双层PP盖",
        ],
    ]
];

$sheet->setCellValue('A1', '客户');
$sheet->setCellValue('B1', '产品名称');
$sheet->setCellValue('C1', '部件');
$sheet->setCellValue('D1', '容量');

$row = 2;
foreach ($data['product'] as $product) {
    $sheet->setCellValue('A' . $row, $data['customer']);
    $sheet->setCellValue('B' . $row, $product['name']);
    $sheet->setCellValue('C' . $row, $product['parts']);
    if (isset($product['rongliang'])) {
        $sheet->setCellValue('D' . $row, $product['rongliang']);
    }
    $row++;
}

// 合并客户列
$sheet->mergeCells('A2:A' . ($row - 1));

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

这段代码首先设置表头,然后循环遍历数组数据写入单元格。最后,使用 mergeCells('A2:A' . ($row - 1)) 合并从 A2 到 A(最后一行) 的单元格。 请确保您已正确安装 PhpSpreadsheet 库。 运行此代码将生成一个名为 example.xlsx 的 Excel 文件,其中包含合并后的行数据。 此方法清晰地展示了如何使用 PhpSpreadsheet 实现数组数据导出和单元格合并。

相关专题

更多
excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

1360

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

390

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

539

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1239

2023.08.02

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

363

2023.08.02

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

4509

2023.08.09

java导出excel
java导出excel

在Java中,我们可以使用Apache POI库来导出Excel文件。本专题提供java导出excel的相关文章,大家可以免费体验。

399

2023.08.18

excel输入值非法
excel输入值非法

在Excel中,当输入的数值非法时,有以下多种处理方法。本专题为大家提供excel输入值非法的相关文章,大家可以免费体验。

1006

2023.08.18

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 9.4万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号