![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/demo.intellicart.co/vendor/yajra/laravel-datatables-export/ |
# Laravel DataTables Export Plugin [](http://laravel.com) [](https://packagist.org/packages/yajra/laravel-datatables-export) [](https://github.com/yajra/laravel-datatables-export/actions/workflows/continuous-integration.yml) [](https://github.com/yajra/laravel-datatables-export/actions/workflows/static-analysis.yml) [](https://packagist.org/packages/yajra/laravel-datatables-export) [](https://packagist.org/packages/yajra/laravel-datatables-export) This package is a plugin of [Laravel DataTables](https://github.com/yajra/laravel-datatables) for handling server-side exporting using Queue, OpenSpout and Livewire. ## Requirements - [PHP >=8.1](http://php.net/) - [Laravel 10](https://github.com/laravel/framework) - [Laravel Livewire](https://laravel-livewire.com/) - [OpenSpout](https://github.com/openspout/openspout/) - [Laravel DataTables 10.x](https://github.com/yajra/laravel-datatables) - [jQuery DataTables v1.10.x](http://datatables.net/) ## Documentations - [Laravel DataTables Documentation](http://yajrabox.com/docs/laravel-datatables) ## Laravel Version Compatibility | Laravel | Package | |:--------|:--------| | 8.x | 0.x | | 9.x | 1.x | | 10.x | 10.x | ## Quick Installation `composer require yajra/laravel-datatables-export` The package also requires batch job: ```shell php artisan queue:batches-table php artisan migrate ``` #### Service Provider (Optional since Laravel 5.5+) `Yajra\DataTables\ExportServiceProvider::class` #### Configuration and Assets (Optional) `$ php artisan vendor:publish --tag=datatables-export --force` ## Usage 1. Add the export-button livewire component on your view file that uses dataTable class. ```html <livewire:export-button :table-id="$dataTable->getTableId()"/> ``` 2. On your `DataTable` class, use `WithExportQueue` ```php use Yajra\DataTables\WithExportQueue; class PermissionsDataTable extends DataTable { use WithExportQueue; ... } ``` 3. Run your queue worker. Ex: `php artisan queue:work` ## Purging exported files On `app\Console\Kernel.php`, register the purge command ```php $schedule->command('datatables:purge-export')->weekly(); ``` ## Export Filename You can set the export filename by setting the property. ```html <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 Type You can set the export type by setting the property to `csv` or `xlsx`. Default value is `xlsx`. ```html <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. ```html <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. ```php 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. ```php 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. ```php 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. ```php 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. ```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, ] ``` ## Force Numeric Field As Text Format Option to force auto-detected numeric value as text format. ```php 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. ```html <livewire:export-button :table-id="$dataTable->getTableId()" filename="my-table.xlsx" auto-download="true"/> ``` ## Contributing Please see [CONTRIBUTING](https://github.com/yajra/laravel-datatables-export/blob/master/.github/CONTRIBUTING.md) for details. ## Security If you discover any security related issues, please email [[email protected]](mailto:[email protected]) instead of using the issue tracker. ## Credits - [Arjay Angeles](https://github.com/yajra) - [All Contributors](https://github.com/yajra/laravel-datatables-export/graphs/contributors) - [Laravel Daily](https://github.com/LaravelDaily/Laravel-Excel-Export-Import-Large-Files) ## License The MIT License (MIT). Please see [License File](https://github.com/yajra/laravel-datatables-export/blob/master/LICENSE.md) for more information.