yajra/laravel-datatables-export
Queue-based server-side exports for yajra/laravel-datatables using Livewire and OpenSpout. Adds an export-button component and WithExportQueue trait to DataTable classes, enabling scalable Excel/CSV-style exports via Laravel batch jobs.
DataTable classes via the WithExportQueue trait, requiring minimal code changes.yajra/laravel-datatables (v13.x)yajra/laravel-datatables-buttons (v13.x)openspout/openspout (v5.x, PHP 8.4+ recommended)queue:work) and a batches table (migration provided).datatables:purge-export).config/datatables-export.php.composer require livewire/livewire).php artisan queue:work).composer require yajra/laravel-datatables-export:"^13.0"
composer require yajra/laravel-datatables-buttons:"^13.0"
php artisan queue:batches-table
php artisan migrate
php artisan vendor:publish --tag=datatables-export --force
config/datatables-export.php.DataTable classes with use WithExportQueue.class UsersDataTable extends DataTable {
use WithExportQueue;
// ...
}
<livewire:export-button :table-id="$dataTable->getTableId()" type="xlsx" />
app/Console/Kernel.php:
$schedule->command('datatables:purge-export')->weekly();
DataTable class using Yajra’s server-side processing.DataTable classes (e.g., admin dashboards).yajra/laravel-datatables-export, openspout/openspout, and livewire/livewire.failed_jobs table.queue:failed and adjust concurrency.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Queue worker crashes | Exports stall | Supervisor/process manager (e.g., Supervisor). |
| Storage permission denied | Exports fail silently | Validate storage paths; use IAM roles for S3. |
| OpenSpout corruption (malformed data) | Broken export files | Validate data before export; add retry logic. |
| Database queue lockup | Jobs time out | Use Redis for high-throughput queues. |
| Livewire session issues | Export buttons fail | Ensure Livewire middleware is configured. |
WithExportQueue trait and Livewire button usage.How can I help you explore Laravel packages today?