ipengxh / fast-export
A fast data export library for laravel eloquent(mysql driver)
dev-master
2019-09-26 10:31 UTC
Requires
- php: ^7.0
- ext-mysqli: *
- laravel/framework: >=5.0
This package is auto-updated.
Last update: 2025-05-26 23:24:45 UTC
README
installation
composer require ipengxh/fast-export
benchmark
create table tests ( id bigint unsigned auto_increment primary key, string_1 varchar(255) not null, string_2 varchar(255) not null, string_3 varchar(255) not null, string_4 varchar(255) not null, string_5 varchar(255) not null, integer_1 int not null, integer_2 int not null, integer_3 int not null, integer_4 int not null, integer_5 int not null, created_at timestamp null, updated_at timestamp null );
1,000,000 rows
$headers = [ 'id' => 'ID', 'string_1' => "String 1", 'string_2' => "String 2", 'string_3' => "String 3", 'string_4' => "String 4", 'string_5' => "String 5", 'integer_1' => "Integer 1", 'integer_2' => "Integer 2", 'integer_3' => "Integer 3", 'integer_4' => "Integer 4", 'integer_5' => "Integer 5", ]; $data = app(Test::class)->orderBy('id', 'desc'); FastExport::download($data, $headers, 'test data');
finished in 2.57 seconds.
usage
use FastExport\FastExport; public function export() { $users = \App\Models\User::withTrashed()->orderBy('id', 'desc'); // save as csv file FastExport::save($users, storage_path("user lists.csv"), [ 'id' => "User ID", 'name' => "Name of user", 'email' => "E-mail address", 'created_at' => "Registered at" ]); // export as csv file FastExport::csv($users, [ 'id' => "User ID", 'name' => "Name of user", 'email' => "E-mail address", 'created_at' => "Registered at" ], 'users'); // advanced export FastExport::csv($users, [ 'id' => "User ID", 'name' => "Name of user", 'email' => "E-mail address", 'created_at' => "Registered at", 'status' => "Status" ], 'users', function ($row) { return [ $row->id, $row->name, $row->email, $row->created_at, $row->deleted_at ? "Deleted" : "Actived" ]; }); }