Laravel Excelに関しての情報があまり多くないので、備忘録としてアウトプット。
手順は、
1.パッケージのインストール
2.Excel.phpの生成
3.サービスプロバイダーの登録
4.エクスポートクラスの生成
となる。
#1.パッケージのインストール
composerを用いて、LaravelExcel3.1をインストールする。
必要なバージョン、PHP拡張モジュールは以下の通り。
・PHP 7.0以上
・Laravel 5.5以上
・PhpSpreadsheet 1.6以上
・php_zip、php_xml、php_gd2、php_iconv、php_simplexml、php_xmlreader、php_zlib
ルートディレクトリで以下のコマンドを実行する。
$ composer require maatwebsite/excel
インストール完了後、composer.lockを確認する。
"name": "maatwebsite/excel",
"version": "3.1.20",
ちゃんとインストールされている。
#2.Excel.phpの生成
ディレクトリ直下で以下のコマンドを実行する。
$ php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
・・・
Copied File [/vendor/maatwebsite/excel/config/excel.php] To [/config/excel.php]
config直下にexcel.phpが生成される。
#3.サービスプロバイダとファサードの登録
サービスプロバイダーにLaravel Excelを登録していく。
config/app.phpのprovidersに追記
'providers' => [
/*
* Package Service Providers...
*/
Maatwebsite\Excel\ExcelServiceProvider::class,
]
続いてファサードに登録する。
config/app.phpのaliasesに追記
'aliases' => [
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
#4.エクスポートクラスを生成
エクスポートクラスを生成する。
以下のSampleの部分には、出力したいデータを持つモデル名を適宜記述する。
$ php artisan make:export SamplesExport --model=App\\Sample
app直下にExportsディレクトリ、Exports直下にSampleExport.phpが生成される。
#実際に出力してみる
コントローラーにexportメソッドを追加する。
public function export()
{
return Excel::download(new SamplesExport, 'samples.csv');
}
ルーティングを追加する。
Route::get('export','SampleController@export');
設定したURLにアクセスすることで、出力されるはずです。
またこちらを参考に出力する表をビューで形成することもできます。
https://docs.laravel-excel.com/3.1/exports/from-view.html