概要
Laravel-Excelの導入方法と使い方の紹介です.公式ドキュメントに同じものがあります.
目盛線や印刷の向きなどの設定方法はこちらにまとめています.
環境
- Laravel 5.8
- Laravel-Excel 3.1
インストール
次のコマンドを打ちます:
composer require maatwebsite/excel
これでvender以下にLaravel-Excel用のファイルが追加されます.
次にLaravelの設定をしていきます.まずconfig/app.phpに
config/app.php
'providers' => [
/*
* Package Service Providers...
*/
Maatwebsite\Excel\ExcelServiceProvider::class, //追加
]
config/app.php
'aliases' => [
'Excel' => Maatwebsite\Excel\Facades\Excel::class, //追加
]
この2行を追加します.追加後コンソールで
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
を実行して,インストール完了です.
使用例
Userを出力してみます.まず
php artisan make:export UsersExport --model=User
を実行して,必要なファイルを作成します.ファイルは app/Exports/UsersExport.php に作成されます.作成されたファイルは
App/Exports/UsersExports.php
<?php
namespace App\Exports;
use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UsersExport implements FromCollection
{
public function collection()
{
return User::all();
}
}
のようになっています.
次にコントローラに
UserController.php
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
class UsersController extends Controller
{
public function export()
{
return Excel::download(new UsersExport, 'users.xlsx');
}
}
を追加します.あとはルートを
routes/web.php
Route::get('/users/export','UserController@export');
追加すれば完了です.
出力形式の指定
出力形式を指定する場合は次のようにします:
UserController.php
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
use Maatwebsite\Excel\Excel as ExcelType
class UsersController extends Controller
{
public function export()
{
return Excel::download(new UsersExport, 'users.xlsx', ExcelType::XLSX);
}
}
ちなみに
return Excel::download(new UsersExport, 'users.xlsx', 'Xlsx');
としても動きます(推奨はしません).対応している形式は
ExcelType::XXXX | 実体 |
---|---|
XLSX | 'Xlsx' |
CSV | 'Csv' |
TSV | 'Csv' |
ODS | 'Ods' |
XLS | 'Xls' |
SLK | 'Slk' |
XML | 'Xml' |
GNUMERIC | 'Gnumeric' |
HTML | 'Html' |
MPDF | 'Mpdf' |
DOMPDF | 'Dompdf' |
TCPDF | 'Tcpdf' |
です.