maymeow/excel-importer

一个将 XLSX 文件转换为模型的 PHP 扩展包。


README

一个简单且可扩展的库,用于将 Excel 文件 (.xlsx) 中的数据加载到对象中。

此库使用 phpoffice/phpspreadsheet 从 XLSX 文件中读取。请查看他们的 Github

读取文件 - 命令行示例数据(已弃用)

通过命令行使用示例数据

php application.php app:read-file -f ./path/to/file.xlsx

通过源代码

创建一个新的模型,它扩展了 MayMeow\ExcelImporter\Models\BaseModel。要将 Excel 中的列映射到属性,请使用 \MayMeow\ExcelImporter\Attributes\Column 属性。

<?php

use MayMeow\ExcelImporter\Models\BaseModel;

class ExampleModel extends BaseModel
{
    #[\MayMeow\ExcelImporter\Attributes\Column('A')]
    protected string $property;

    public function getProperty()
    {
        return $this->property;
    }
}

以下示例是从活动工作表读取文件

// ...

use MayMeow\ExcelImporter\Models\ExampleModel;
use MayMeow\ExcelImporter\Writers\ModelWriter;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;

// ...
public function testImportingFile()
{
    $xlsxReader = new Xlsx();
    $spreadsheet = $xlsxReader->load((new TestingDataLocator())->locateExcelFile());
    $writer = new ModelWriter();
    
    /** @var array<TestingModel> $modelArray */
    $modelArray = $writer->write(TestingModel::class, $spreadsheet);
}
// ...

文件

为了获取文件的路径,您可以创建一个通过实现 MayMeow\ExcelImporter\Tools\FileLocatorInterface 的定位器,这不是 XLS 读取器所必需的,但建议使用。

许可 MIT