如何使用PhpSpreadsheet合并行输出Excel表格以展示客户和产品信息?(产品信息.如何使用.合并.表格.客户...)

wufei1232025-03-24PHP1

如何使用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的单元格合并功能。 以下代码演示了如何实现:

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

$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报表。

以上就是如何使用PhpSpreadsheet合并行输出Excel表格以展示客户和产品信息?的详细内容,更多请关注知识资源分享宝库其它相关文章!

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。