编程

在PHP中使用Excel模板生成文档

1162 2022-05-29 10:07:02

AnourValar/office 包是用来从XLSX模板中生成文档的 PHP +8.1 。 给定一个模板

使用如下代码,你可以用模板值生成文档:

$data = [
    // scalar
    'vat' => 'No',
    'total' => [
        'price' => 2004.14,
        'qty' => 3,
    ],
 
    // one-dimensional table
    'products' => [
        [
            'name' => 'Product #1',
            'price' => 989,
            'qty' => 1,
            'date' => new \DateTime('2022-03-30'),
        ],
        [
            'name' => 'Product #2',
            'price' => 1015.14,
            'qty' => 2,
            'date' => new \DateTime('2022-03-31'),
        ],
    ],
];
 
// Save as XLSX (Excel)
(new \AnourValar\Office\TemplateService())
    ->generate(
        'template1.xlsx', // path to template
        $data // input data
    )
    ->saveAs(
        'generated_document.xlsx', // path to save
        \AnourValar\Office\Format::Xlsx // save format
    );

然后就会生成基于template1.xlsx文件的文档。

保存文档时,此包支持多种保存格式,包括:

  • XLSX
  • PDF
  • HTML
  • ODS

除了从XLSX生成文件,这个包还支持:

  • 二维表格
  • 图片插入
  • 动态模板
  • 合并多个文件
  • 导出表格 (grid service)

更多详情查看Github源码

PHP