esmaeil / excelmapper
一个简化将 Excel 数据映射、解析和导入到您的应用程序中的过程的 PHP 库。
v1.0.0
2024-08-18 18:50 UTC
Requires
- php: ^8.0
- phpoffice/phpspreadsheet: ^1.20
Requires (Dev)
- phpunit/phpunit: ^9.5
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 联系。