Fast Excel import/export for Laravel.
A Big thanks to thanks to Spout.
Fast Excel is a Laravel package for importing and exporting spreadsheets. It is capable of processing large files, all while keeping the memory usage low.
⚡ Install via composer:
composer require rap2hpoutre/fast-excel
Export a Model to .xlsx
file:
use Rap2hpoutre\FastExcel\FastExcel;
use App\User;
// Load users
$users = User::all();
// Export all users
(new FastExcel($users))->export('file.xlsx');
⏬ Export
Export a Model or a Collection:
$list = collect([
[ 'id' => 1, 'name' => 'Jane' ],
[ 'id' => 2, 'name' => 'John' ],
]);
(new FastExcel($list))->export('file.xlsx');
Export xlsx
, ods
and csv
:
$invoices = App\Invoice::orderBy('created_at', 'DESC')->get();
(new FastExcel($invoices))->export('invoices.csv');
Export only some attributes specifying columns names:
(new FastExcel(User::all()))->export('users.csv', function ($user) {
return [
'Email' => $user->email,
'First Name' => $user->firstname,
'Last Name' => strtoupper($user->lastname),
];
});
Download (from a controller method):
return (new FastExcel(User::all()))->download('file.xlsx');
⬆ Import
import
returns a Collection:
$collection = (new FastExcel)->import('file.xlsx');
Import a csv
with specific delimiter, enclosure characters and “gbk” encoding:
$collection = (new FastExcel)->configureCsv(';', '#', '\n', 'gbk')->import('file.csv');
Import and insert to the database:
$users = (new FastExcel)->import('file.xlsx', function ($line) {
return User::create([
'name' => $line['Name'],
'email' => $line['Email']
]);
});
Learn More
You can learn more about this package, get full installation instructions, and view the source code on GitHub at rap2hpoutre/fast-excel.