Export Plugin Installation
GitHub: yajra/laravel-datatables-export
This package is a plugin for Laravel DataTables that handles server-side exporting using Queue, OpenSpout, and Livewire. It allows you to export large datasets without timing out by processing exports in background jobs.
[!NOTE] Requirements:
- PHP 8.3+
- Laravel 13.x
- Livewire 3.x
- A queue worker (Redis, Database, SQS, etc.)
Quick Installation
Install the package via Composer:
composer require yajra/laravel-datatables-export:"^13.0"
Queue Setup
The export package uses Laravel's job batching feature. You need to set up the queue and batch jobs tables:
# Create the jobs table (if not already exists)php artisan queue:table # Create the job batches table (required for export tracking)php artisan queue:batches-table # Run migrationsphp artisan migrate
Configuration
[!NOTE] This step is optional. The package works with default configuration out of the box.
Publish the configuration file and views to customize the export behavior:
php artisan vendor:publish --tag=datatables-export --force
Configuration Options
After publishing, you can customize the export behavior in config/datatables-export.php:
<?php return [ /* * Query iteration method: 'lazy' (recommended for large datasets) or 'cursor' */ 'method' => 'lazy', /* * Chunk size when using lazy method */ 'chunk' => 1000, /* * Storage disk for export files */ 'disk' => 'local', /* * Optional S3 disk for final destination */ 's3_disk' => '', /* * Default date format for exports */ 'default_date_format' => 'yyyy-mm-dd', /* * Auto-purge exports older than X days */ 'purge' => [ 'days' => 1, ],];
Next Steps
- Export Usage - Learn how to use the export functionality
- Export Options - Customize export types, sheet names, and column formatting
- Export Columns - Configure which columns to include in exports
- Export Purge - Automate cleanup of old export files