iracode-com / filament-excel-pro
基于 `SpartanNL/Laravel-Excel` 包的高级 Excel 文件数据录入的 Filament 插件
Requires
- filament/filament: ^3.2
- maatwebsite/excel: ^3.1
- spatie/laravel-package-tools: ^1.16
This package is auto-updated.
Last update: 2024-09-25 16:05:21 UTC
README
SpartanNL/Laravel-Excel 的 Filament 扩展功能包
本包提供 Filament 资源,用于添加基于 SpartanNL/Laravel-Excel
包的高级数据导入功能
需求
- Laravel v11
- Filament v3
- SpartanNL/Laravel-Excel v3
支持的语言
Filament Excel Pro 插件已翻译为
- 美式英语
- 波斯语
安装
您可以通过 composer 安装此包
composer require iracode-com/filament-excel-pro
之后运行安装命令
php artisan filament-excel-pro:install
这将发布 iracode-com/filament-excel-pro
中的配置、迁移和翻译
并运行迁移
php artisan migrate
您可以使用以下命令手动发布配置文件
php artisan vendor:publish --tag="filament-excel-pro-config"
这是发布配置文件的内容
return [ /* * This model will be used to import. */ 'import_model' => \IracodeCom\FilamentExcelPro\Model\Importable::class, /* * This model will be determined as user model. * creator, updater: foreign key columns in import model for creator, updater relationships */ 'user' => [ 'model' => \App\Models\User::class, 'creator' => 'created_by', 'updater' => 'updated_by' ], /* * This is the name of the table that will be created by the migration and * used by the Import model shipped with this package. */ 'table' => 'importables', 'resources' => [ 'label' => 'Excel Import', 'plural_label' => 'Excel Imports', 'navigation_group' => null, 'navigation_icon' => 'heroicon-o-clipboard-document-check', 'navigation_sort' => null, 'navigation_count_badge' => false, 'resource' => \IracodeCom\FilamentExcelPro\Resources\ImportableResource::class, ], 'datetime_format' => 'd/m/Y H:i:s', ];
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="filament-excel-pro-views"
使用方法
基本的 SpartanNL Laravel Excel 使用方法
在您的 AppServiceProvider
中添加 HeadingRowFormatter::default('none')
方法以禁用格式化
use Illuminate\Support\ServiceProvider; use Maatwebsite\Excel\Imports\HeadingRowFormatter; class AppServiceProvider extends ServiceProvider { /** * Register any application services. */ public function register(): void { // } /** * Bootstrap any application services. */ public function boot(): void { HeadingRowFormatter::default('none'); } }
插件使用
在您的面板服务提供者 (App\Providers\Filament)
中激活插件
将 IracodeCom\FilamentExcelPro\FilamentExcelProPlugin
添加到您的面板配置中
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make(), ]); }
自定义导入资源
您可以通过更新 ->resource()
值来替换使用的 ImportableResource
。使用此方法创建自己的 CustomResource
类,并在 \IracodeCom\FilamentExcelPro\Resources\ImportableResource::class
处扩展原始类。这将允许您自定义视图、表格、表单和权限等一切内容。
注意
如果您希望在列表和视图页面上更改资源,请确保在新的资源上替换 getPages
方法,并创建自己的 ListPage
和 ViewPage
类以引用自定义的 CustomResource
。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->resource(\Path\For\Your\CustomResource::class), ]); }
自定义资源标签
您可以通过更新 ->label()
和 ->pluralLabel()
值来替换使用的 Resource label
。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->label('Excel import') ->pluralLabel('Excel imports'), ]); }
分组资源导航项
您可以通过更新 ->navigationGroup()
值来添加 Resource navigation group
。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->navigationGroup('Excel import'), ]); }
自定义资源导航图标
您可以通过更新 ->navigationIcon()
值来替换使用的 Resource navigation icon
。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->navigationIcon('heroicon-o-clipboard-document-check'), ]); }
激活计数徽章
您可以通过更新 ->navigationCountBadge()
值来激活 Count Badge
。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->navigationCountBadge(true), ]); }
设置导航排序
您可以通过更新 ->navigationSort()
值来设置 Resource navigation sort
。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->navigationSort(3), ]); }
授权
如果您希望阻止某些用户访问日志资源,请在 FilamentExcelProPlugin
链中添加授权回调。
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->authorize( fn () => auth()->user()->id === 1 ), ]); }
完整配置
use IracodeCom\FilamentExcelPro\FilamentExcelProPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentExcelProPlugin::make() ->resource(\Path\For\Your\CustomResource::class) ->label('Excel import') ->pluralLabel('imports') ->navigationGroup('Excel import') ->navigationIcon('heroicon-o-shield-check') ->navigationCountBadge(true) ->navigationSort(2) ->authorize( fn () => auth()->user()->id === 1 ), ]); }
变更日志
有关最近更改的更多信息,请参阅变更日志。
致谢
特别感谢这些杰出的工具和人们(开发者),Excel 导入插件的存在仅因他们的启发以及在某个阶段使用这些人的代码。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。