yajra / laravel-datatables-export
Laravel DataTables 队列导出插件。
Requires
- php: ^8.2
- ext-json: *
- livewire/livewire: ^2.11.2|^3.5.6
- openspout/openspout: ^4.24.5
- phpoffice/phpspreadsheet: 2.2.1
- yajra/laravel-datatables-buttons: ^11.0
Requires (Dev)
- larastan/larastan: ^2.9.8
- laravel/pint: ^1.17.2
- orchestra/testbench: ^9.4.0
- pestphp/pest: ^2.35.1
- pestphp/pest-plugin-laravel: ^2.4
- rector/rector: ^1.2.4
- dev-master / 11.x-dev
- v11.2.0
- v11.1.1
- v11.1.0
- v11.0.1
- v11.0.0
- 10.x-dev
- v10.1.1
- v10.1.0
- v10.0.0
- 1.x-dev
- v1.2.0
- v1.1.0
- v1.0.1
- v1.0.0
- 0.x-dev
- v0.14.1
- v0.14.0
- 0.13.x-dev
- v0.13.0
- v0.12.0
- v0.11.1
- v0.11.0
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.1
- v0.6.0
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.0
- v0.3.0
- v0.2.0
- v0.1.0
- dev-patch-1
- dev-patch-url
- dev-spout
This package is auto-updated.
Last update: 2024-09-02 05:54:50 UTC
README
本包是 Laravel DataTables 的插件,用于通过队列、OpenSpout 和 Livewire 处理服务器端导出。
要求
文档
Laravel 版本兼容性
快速安装
composer require yajra/laravel-datatables-export:^11.0
该包还需要批处理作业
php artisan queue:batches-table php artisan migrate
服务提供者(自 Laravel 5.5+ 可选)
Yajra\DataTables\ExportServiceProvider::class
配置和资产(可选)
$ php artisan vendor:publish --tag=datatables-export --force
使用
- 将导出按钮 Livewire 组件添加到使用 dataTable 类的视图文件中。
<livewire:export-button :table-id="$dataTable->getTableId()"/>
- 在你的
DataTable
类中,使用WithExportQueue
use Yajra\DataTables\WithExportQueue; class PermissionsDataTable extends DataTable { use WithExportQueue; ... }
- 运行你的队列工作进程。例如:
php artisan queue:work
清除导出文件
在 app\Console\Kernel.php
中,注册清除命令
$schedule->command('datatables:purge-export')->weekly();
导出文件名
您可以通过设置属性来设置导出文件名。
<livewire:export-button :table-id="$dataTable->getTableId()" filename="my-table.xlsx"/> <livewire:export-button :table-id="$dataTable->getTableId()" filename="my-table.csv"/> <livewire:export-button :table-id="$dataTable->getTableId()" :filename="$filename"/>
导出按钮名称
您可以通过设置 buttonName
属性来设置导出按钮名称。
<!-- Examples demonstrating how to customize the button name for different scenarios --> <livewire:export-button :table-id="$dataTable->getTableId()" type="xlsx" buttonName="Export Excel"/> <livewire:export-button :table-id="$dataTable->getTableId()" type="csv" buttonName="Export CSV"/>
导出类型
您可以通过将属性设置为 csv
或 xlsx
来设置导出类型。默认值是 xlsx
。
<livewire:export-button :table-id="$dataTable->getTableId()" type="xlsx"/> <livewire:export-button :table-id="$dataTable->getTableId()" type="csv"/>
设置 Excel 工作表名称
选项 1:您可以通过设置属性来设置 Excel 工作表名称。
<livewire:export-button :table-id="$dataTable->getTableId()" sheet-name="Monthly Report"/>
选项 2:您还可以通过覆盖方法来设置 Excel 工作表名称。
protected function sheetName() : string { return "Yearly Report"; }
格式化列
您可以通过在 DataTable 服务类中的列定义中设置来格式化列。
Column::make('mobile')->exportFormat('00000000000'),
上面的格式将手机号码视为带前导零的文本。
数字字段格式化
该包将自动检测数字字段,并可使用自定义格式。
Column::make('total')->exportFormat('0.00'), Column::make('count')->exportFormat('#,##0'), Column::make('average')->exportFormat('#,##0.00'),
日期字段格式化
当使用有效格式或为 DateTime 实例时,该包将自动检测日期字段。
Column::make('report_date')->exportFormat('mm/dd/yyyy'), Column::make('created_at'), Column::make('updated_at')->exportFormat(NumberFormat::FORMAT_DATE_DATETIME),
有效日期格式
有效日期格式可以在 datatables-export.php
配置文件中调整。
'date_formats' => [ 'mm/dd/yyyy', NumberFormat::FORMAT_DATE_DATETIME, NumberFormat::FORMAT_DATE_YYYYMMDD, NumberFormat::FORMAT_DATE_XLSX22, NumberFormat::FORMAT_DATE_DDMMYYYY, NumberFormat::FORMAT_DATE_DMMINUS, NumberFormat::FORMAT_DATE_DMYMINUS, NumberFormat::FORMAT_DATE_DMYSLASH, NumberFormat::FORMAT_DATE_MYMINUS, NumberFormat::FORMAT_DATE_TIME1, NumberFormat::FORMAT_DATE_TIME2, NumberFormat::FORMAT_DATE_TIME3, NumberFormat::FORMAT_DATE_TIME4, NumberFormat::FORMAT_DATE_TIME5, NumberFormat::FORMAT_DATE_TIME6, NumberFormat::FORMAT_DATE_TIME7, NumberFormat::FORMAT_DATE_XLSX14, NumberFormat::FORMAT_DATE_XLSX15, NumberFormat::FORMAT_DATE_XLSX16, NumberFormat::FORMAT_DATE_XLSX17, NumberFormat::FORMAT_DATE_YYYYMMDD2, NumberFormat::FORMAT_DATE_YYYYMMDDSLASH, ]
强制将数字字段作为文本格式
选项:强制将自动检测的数字值作为文本格式。
Column::make('id')->exportFormat('@'), Column::make('id')->exportFormat(NumberFormat::FORMAT_GENERAL), Column::make('id')->exportFormat(NumberFormat::FORMAT_TEXT),
自动下载
选项:自动下载导出文件。
<livewire:export-button :table-id="$dataTable->getTableId()" filename="my-table.xlsx" auto-download="true"/>
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 [email protected] 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。