Using Laravel FastExcel for Efficient Import and Export of Large Datasets
Laravel FastExcel provides a memory‑friendly alternative to Laravel Excel for importing and exporting data, demonstrating installation via Composer, basic export of collections or models, handling large datasets with generators, and various import configurations, while emphasizing performance considerations such as max_execution_time.
This article introduces the Laravel FastExcel component, a lightweight, memory‑efficient alternative to Laravel Excel for fast import and export of data files.
Installation
composer require rap2hpoutre/fast-excelBasic Export
You can export a collection or model directly to XLSX, CSV, or ODS:
fastexcel($collection)->export('file.xlsx');Using Generators for Large Datasets
Generators allow row‑by‑row processing without loading the entire dataset into memory:
function usersGenerator() {
foreach (User::cursor() as $user) {
yield $user;
}
}
$users = usersGenerator();
foreach ($users as $user) {
// process each $user
}Exporting with a generator consumes only a few megabytes even for millions of rows:
$users = usersGenerator();
fastexcel($users)->export('test.xlsx');Importing Data
$collection = (new FastExcel)->import('file.xlsx');Importing CSV with custom configuration:
$collection = (new FastExcel)
->configureCsv(',', '#', "\n", 'gbk')
->import('file.csv');Facade Registration
'providers' => [
// ...
'FastExcel' => Rap2hpoutre\FastExcel\Facades\FastExcel::class,
],Facade usage example:
FastExcel::data($list)->export('file.xlsx');Global Helper
$sheets = new SheetCollection([User::all(), Project::all()]);
(new FastExcel($sheets))->export('file.xlsx');Performance Considerations
FastExcel processes rows one at a time, minimizing memory usage, but the operation can be time‑consuming; ensure the PHP max_execution_time limit is sufficient or use queues or asynchronous techniques for very large exports.
Overall, FastExcel enables Laravel developers to handle massive data imports and exports with just a few lines of code while keeping memory consumption low.
Laravel Tech Community
Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.