yajra/laravel-datatables-export
最新稳定版本:v12.1.1
Composer 安装命令:
composer require yajra/laravel-datatables-export
包简介
Laravel DataTables Queued Export Plugin.
README 文档
README
This package is a plugin of Laravel DataTables for handling server-side exporting using Queue, OpenSpout and Livewire.
Requirements
Documentations
Laravel Version Compatibility
| Laravel | Package |
|---|---|
| 8.x | 0.x |
| 9.x | 1.x |
| 10.x | 10.x |
| 11.x | 11.x |
| 12.x | 12.x |
Quick Installation
composer require yajra/laravel-datatables-export:"^12.0"
The package also requires batch job:
php artisan queue:batches-table php artisan migrate
Configuration and Assets (Optional)
php artisan vendor:publish --tag=datatables-export --force
Usage
- Add the export-button livewire component on your view file that uses dataTable class.
<livewire:export-button :table-id="$dataTable->getTableId()"/>
- On your
DataTableclass, useWithExportQueue
use Yajra\DataTables\WithExportQueue; class PermissionsDataTable extends DataTable { use WithExportQueue; ... }
- Run your queue worker. Ex:
php artisan queue:work
Purging exported files
On app\Console\Kernel.php, register the purge command
$schedule->command('datatables:purge-export')->weekly();
Export Filename
You can set the export filename by setting the property.
<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"/>
Export Button Name
You can set the export button name by setting the buttonName property.
<!-- 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"/>
Export Type
You can set the export type by setting the property to csv or xlsx. Default value is xlsx.
<livewire:export-button :table-id="$dataTable->getTableId()" type="xlsx"/> <livewire:export-button :table-id="$dataTable->getTableId()" type="csv"/>
Set Excel Sheet Name
Option 1: You can set the Excel sheet name by setting the property.
<livewire:export-button :table-id="$dataTable->getTableId()" sheet-name="Monthly Report"/>
Option 2: You can also set the Excel sheet name by overwriting the method.
protected function sheetName() : string { return "Yearly Report"; }
Formatting Columns
You can format the column by setting it via Column definition on you DataTable service class.
Column::make('mobile')->exportFormat('00000000000'),
The format above will treat mobile numbers as text with leading zeroes.
Numeric Fields Formatting
The package will auto-detect numeric fields and can be used with custom formats.
Column::make('total')->exportFormat('0.00'), Column::make('count')->exportFormat('#,##0'), Column::make('average')->exportFormat('#,##0.00'),
Date Fields Formatting
The package will auto-detect date fields when used with a valid format or is a DateTime instance.
Column::make('report_date')->exportFormat('mm/dd/yyyy'), Column::make('created_at'), Column::make('updated_at')->exportFormat(NumberFormat::FORMAT_DATE_DATETIME),
Valid Date Formats
Valid date formats can be adjusted on datatables-export.php config file.
'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, ]
Force Numeric Field As Text Format
Option to force auto-detected numeric value as text format.
Column::make('id')->exportFormat('@'), Column::make('id')->exportFormat(NumberFormat::FORMAT_GENERAL), Column::make('id')->exportFormat(NumberFormat::FORMAT_TEXT),
Auto Download
Option to automatically download the exported file.
<livewire:export-button :table-id="$dataTable->getTableId()" filename="my-table.xlsx" auto-download="true"/>
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email aqangeles@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 1.58M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 34
- 点击次数: 3
- 依赖项目数: 2
- 推荐数: 3
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04