LaravelでExcelをインポート・エクスポートしたい
LaravelでExcelやCSVのインポート・エクスポート機能を実装したい場合に便利なのがLaravel Excelです。
composer経由でインストールすることができます。
実際にLaravelExcelをインストールしてExcelファイルを書き出すところまでの手順を簡単に解説します。
※usersテーブルのデータを出力する処理を実装するため、前提としてusersクラスにユーザーの追加をお願いします。
インストール
Composer経由でインストールします。
インストール後に下記コマンドを実行してmakeの欄に「make:export」と表示されていればインストール完了です。
Exportクラスを作成する
LaravelExcelでは出力内容をExportクラスに定義します。
そのためまずはExportクラスを作成します。
すると「app/Exports/UsersExport.php」が作成されます。
collection()がExcelへ出力するデータを返すメソッドです。
今回は「User::all()」を返しているため、usersテーブルの内容がそのままExcelになるはずです。
ルーティング作成
web.phpにルーティングを作成します。
下記コードをそのまま貼り付けて使用できます。
use Maatwebsite\Excel\Facades\Excel;
Route::get('/users/export', function () {
return Excel::download(new UsersExport(), 'users.xlsx');
});
実際にサーバーを起動して出力
追加したルーティングにアクセスしてダウンロードしてみましょう。
すると「users.xlsx」がダウンロードされます。
usersテーブルにデータがあれば、Excelファイル内に一覧が出力されます。
まとめ
Laravel12でLaravel Excelを使う流れは以下の通りです。
1. パッケージをインストール
2. Exportクラスを作成
3. collection()で出力データ定義
4. Excel::download()でダウンロード
基本はこれだけです。
他にも様々な機能が用意されているので、公式ドキュメントを読んで色々試してみるのも面白いです。
Laravel Excel公式ドキュメント