This package is a plugin of Laravel DataTables for handling server-side exporting using Queue, Laravel Excel and Livewire.
This version is still on experimental stage.
composer require yajra/laravel-datatables-export -W
The package also requires batch job:
php artisan queue:batches-table
php artisan migrateYajra\DataTables\ExportServiceProvider::class
$ php artisan vendor:publish --tag=datatables-export --force
- 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
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" />You can set the export type by setting the property to csv or xlsx. Default value is csv.
<livewire:export-button :table-id="$dataTable->getTableId()" type="xlsx" />
<livewire:export-button :table-id="$dataTable->getTableId()" type="csv" />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.
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 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,
]Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.