coolsam/excel-import
使用laravel-excel在FilamentPHP中实现易用的导入和导出
v1.1.0
2024-03-25 08:13 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- illuminate/contracts: ^10.47|^11.0
- maatwebsite/excel: ^3.1
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-08-25 09:13:43 UTC
README
此插件提供用户友好的Filament操作,让您一键使用maatwebsite/excel
创建数据导入和导出。
安装
您可以通过composer安装此包
composer require coolsam/excel-import
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="coolsam-excel-config"
这是已发布配置文件的内容
return [ 'accepted_mimes' => [ 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'text/csv', 'text/plain', 'csv', 'txt', ], 'temporary_files' => [ 'disk' => 'local', 'directory' => 'coolsam-excel', ], ];
用法
导入
该包提供两种导入记录的操作:页面操作和表格操作。
在列表页面中使用页面操作
在您的资源列表页面中添加以下导入操作,例如ListUsers
use Coolsam\FilamentExcel\Actions\ImportAction; use Coolsam\FilamentExcel\Actions\ImportField; protected function getHeaderActions(): array { return [ ImportAction::make('users')->fields([ ImportField::make('name')->required(), ImportField::make('email')->required(), ]), ... ,// Other Actions ]; }
在资源类中使用表格操作
将以下内容链接到资源类中的 $table 变量。这在您希望在一个关系管理器类中导入子记录时也很有用。请注意,导入部分的Action不同。
use Coolsam\FilamentExcel\Actions\ImportField; use Coolsam\FilamentExcel\Actions\Tables\ImportAction; $table->headerActions([ ImportAction::make('import users') ->fields([ ImportField::make('name')->required(), ImportField::make('email')->required(), ])->uniqueField('email') ->createRecordUsing(fn($data) => User::updateOrCreate( ['email' => $data['email']], $data )) ])
唯一字段
如果您想跳过DB中已经存在的某些记录,您需要指定一个唯一字段来检查现有字段。
$table->headerActions([ ImportAction::make('import users') ->fields([ ImportField::make('name')->required(), ImportField::make('email')->required(), ])->uniqueField('email') ->createRecordUsing(fn($data) => User::updateOrCreate( ['email' => $data['email']], $data )) ])
手动处理记录创建过程
您可能更喜欢控制一切,并希望在给定数据的情况下自己创建记录。以下是方法
$table->headerActions([ ImportAction::make('import users') ->fields([ ImportField::make('name')->required(), ImportField::make('email')->required(), ])->createRecordUsing(fn($data) => User::updateOrCreate( ['email' => $data['email']], $data )) ])
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
请参阅我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。