esmaeil/excelmapper

一个简化将 Excel 数据映射、解析和导入到您的应用程序中的过程的 PHP 库。

v1.0.0 2024-08-18 18:50 UTC

This package is auto-updated.

Last update: 2024-09-22 09:14:35 UTC


README

ExcelMapper 是一个强大且灵活的 PHP 库,旨在简化从 Excel 文件中映射、解析和导入数据到您的应用程序的过程。无论您处理的是简单的电子表格还是复杂的数据结构,ExcelMapper 都提供了一种直观的界面,将 Excel 数据转换为在您的 PHP 项目中轻松处理的形式。

特性

  • 自定义列映射:使用自定义或默认解析器定义您的 Excel 文件中的每个列应如何处理。
  • 无缝集成:轻松与现有的 PHP 应用程序和工作流程集成。
  • 由 PHPSpreadsheet 提供:利用 PHPSpreadsheet 强大的功能来处理 Excel 文件。
  • 可扩展架构:扩展和自定义库以满足您的特定需求。

安装

您可以通过 Composer 安装 ExcelMapper。运行以下命令:

composer require esmaeil/excel-mapper

使用方法

基本示例

以下是使用 ExcelMapper 读取 Excel 文件、处理数据并使用自定义回调处理数据的示例。

use ExcelMapper\DataProcessor\ExcelDataProcessor;
use ExcelMapper\Readers\ExcelReader;
use ExcelMapper\Parsers\DefaultParser;

// Define custom column mapping
$mapping = [
    'A' => 'first_name',
    'B' => 'last_name',
    'C' => ['phone_number', DefaultParser::class],
];

// Read Excel file
$reader = new ExcelReader();
$sheetData = $reader->read('path_to_file.xlsx');

// Process the data
$processor = new ExcelDataProcessor();
$processor->process($sheetData, $mapping, function($mappedData) {
    // Handle the mapped data (e.g., save to database)
    print_r($mappedData);
});

自定义解析器

如果您需要针对特定列的自定义处理逻辑,您可以通过实现 ColumnParserInterface 创建自己的解析器。

use ExcelMapper\Interfaces\ColumnParserInterface;

class UppercaseParser implements ColumnParserInterface
{
    public function parse(mixed $value): mixed
    {
        return strtoupper($value);
    }
}

然后您可以在列映射中使用此自定义解析器。

$mapping = [
    ['first_name', UppercaseParser::class],
    ['last_name', UppercaseParser::class],
];

高级使用

您可以通过集成更多功能或修改现有功能来进一步扩展 ExcelMapper。

  • 创建自定义读取器:通过遵循 ExcelReaderInterface 实现您自己的读取器。
  • 扩展处理器:通过扩展 ExcelDataProcessor 自定义数据处理方式。
  • 按字母映射列:通过字母标识符映射 Excel 列,支持单字母(例如,'A')和多字母(例如,'AA')列。

测试

要运行测试,请确保您已安装 PHPUnit。您可以使用以下命令运行测试:

vendor/bin/phpunit

贡献

我们欢迎贡献!如果您有改进此项目的想法或发现了错误,请打开一个问题或提交一个 pull request。

许可证

ExcelMapper 在 MIT 许可证下发布。有关更多详细信息,请参阅 LICENSE 文件。

联系

如果您有任何询问或需要支持,请随时通过 esmaeil94@gmail.com 联系。