1. Go to this page and download the library: Download rap2hpoutre/fast-excel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rap2hpoutre / fast-excel example snippets
use Rap2hpoutre\FastExcel\FastExcel;
use App\User;
// Load users
$users = User::all();
// Export all users
(new FastExcel($users))->export('file.xlsx');
$list = collect([
[ 'id' => 1, 'name' => 'Jane' ],
[ 'id' => 2, 'name' => 'John' ],
]);
// export() returns the absolute path to the written file
$path = (new FastExcel($list))->export('file.xlsx');
$invoices = App\Invoice::orderBy('created_at', 'DESC')->get();
(new FastExcel($invoices))->export('invoices.csv');
(new FastExcel(User::all()))->export('users.csv', function ($user) {
return [
'Email' => $user->email,
'First Name' => $user->firstname,
'Last Name' => strtoupper($user->lastname),
];
});
(new FastExcel(User::all()))->hideColumnsPrefixedWith()->export('users.csv', function ($user) {
return [
'Name' => $user->name,
'_role' => $user->role, // used for logic below, never written to the file
];
});
return (new FastExcel(User::all()))->download('file.xlsx');
$collection = (new FastExcel)->import('file.xlsx');
$collection = (new FastExcel)->configureCsv(';', '#', 'gbk')->import('file.csv');
$users = (new FastExcel)->import('file.xlsx', function ($line) {
return User::create([
'name' => $line['Name'],
'email' => $line['Email']
]);
});
$collection = (new FastExcel)->limitRows(100)->import('file.xlsx');
$sheets = (new FastExcel)->importSheets('file.xlsx');
$users = (new FastExcel)->sheet(3)->import('file.xlsx');
$sheets = (new FastExcel)->withSheetsNames()->importSheets('file.xlsx');
// Export consumes only a few MB, even with 10M+ rows.
(new FastExcel(User::cursor()))->export('users.xlsx');
function rowsGenerator() {
foreach (some_paginated_source() as $row) {
yield $row;
}
}
(new FastExcel(rowsGenerator()))->export('test.xlsx');
// Memory stays flat regardless of the number of rows.
(new FastExcel)->import('file.xlsx', function ($line) {
User::create([
'name' => $line['Name'],
'email' => $line['Email'],
]);
return null; // don't keep the row in memory
});
use Illuminate\Support\LazyCollection;
(new FastExcel)->importLazy('file.xlsx')
->chunk(1000)
->each(function (LazyCollection $chunk) {
User::insert($chunk->all());
});
use OpenSpout\Common\Entity\Style\Style;
$header_style = (new Style())->setFontBold();
$rows_style = (new Style())
->setFontSize(15)
->setShouldWrapText()
->setBackgroundColor("EDEDED");
return (new FastExcel($list))
->headerStyle($header_style)
->rowsStyle($rows_style)
->download('file.xlsx');
use OpenSpout\Common\Entity\Style\Color;
use OpenSpout\Common\Entity\Style\Style;
return (new FastExcel($list))
->setHeaderColumnStyles([
0 => (new Style())->setBackgroundColor(Color::YELLOW),
1 => (new Style())->setFontColor(Color::BLUE),
])
->download('file.xlsx');
// 0660123456 stays "0660123456" instead of becoming 660123456
(new FastExcel($users))->stringValues()->export('users.xlsx');
(new FastExcel($users))
->stringValues() // text by default
->setColumnFormat([
'id' => 'number', // keep as number
'phone' => 'string', // keep as text
])
->export('users.xlsx');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.