vinorcola / import-bundle
提供导入和映射文件的工具的包。
v2.0.2
2024-02-20 11:05 UTC
Requires
- php: ^7.1 | ^8.0
- phpoffice/phpspreadsheet: ^1.0|^2.0
- psr/cache: ^1.0|^2.0|^3.0
- symfony/config: ^4.2|^5.0|^6.0
- symfony/contracts: ^1.1|^2.0|^3.0
- symfony/dependency-injection: ^4.2|^5.0|^6.0
- symfony/event-dispatcher: ^4.2|^5.0|^6.0
- symfony/form: ^4.2|^5.0|^6.0
- symfony/http-kernel: ^4.2|^5.0|^6.0
- symfony/routing: ^4.2|^5.0|^6.0
- vinorcola/helper-bundle: ^1.1
This package is auto-updated.
Last update: 2024-09-20 12:35:44 UTC
README
一个用于从CSV或Excel文件导入数据,并允许用户将文件列映射到所需进程字段的包。
配置
设置一个临时目录,上传的文件将临时存储在此。
通过配置
- 路由前缀(为每个导入过程生成多个路由)
- 映射(您进程所需列)
- 进程服务(必须实现
Vinorcola\ImportBundle\Model\ImportConsumerInterface
)。
# config/packages/vinorcola_import.yaml vinorcola_import: temporaryDirectory: "%kernel.project_dir%/document-storage/tmp" imports: company_import: route_prefix: name: import.company. url: /company/import mapping: [ nationalIdentifier, companyName, address, city ] service: App\Model\CompanyImportHandler contact_import: route_prefix: name: import.contact. url: /contact/import mapping: [ firstName, lastName, emailAddress, phoneNumber ] service: App\Model\ContactImportHanlder
# config/routes/vinorcola_import.yaml import_routes: resource: '@VinorcolaImportBundle/Controller/' type: vinorcola_import
然后,您的进程服务的 consume
方法将针对用户文件的每一行数据被调用,提供一个包含映射列和行索引的数组
public function consume(array $values, int $lineIndex): void;
例如,在 App\Model\CompanyImportHandler
中,consume
方法将使用包含以下键的 $values
数组被调用
nationalIdentifier
companyName
address
city