LaravelでExcel出力をする方法

LaravelでExcelをインポート・エクスポートしたい

LaravelでExcelやCSVのインポート・エクスポート機能を実装したい場合に便利なのがLaravel Excelです。
composer経由でインストールすることができます。
実際にLaravelExcelをインストールしてExcelファイルを書き出すところまでの手順を簡単に解説します。
※usersテーブルのデータを出力する処理を実装するため、前提としてusersクラスにユーザーの追加をお願いします。

インストール

Composer経由でインストールします。

composer require maatwebsite/excel

インストール後に下記コマンドを実行してmakeの欄に「make:export」と表示されていればインストール完了です。

php artisan list

Exportクラスを作成する

LaravelExcelでは出力内容をExportクラスに定義します。
そのためまずはExportクラスを作成します。

php artisan make:export UsersExport --model=User

すると「app/Exports/UsersExport.php」が作成されます。

collection()がExcelへ出力するデータを返すメソッドです。
今回は「User::all()」を返しているため、usersテーブルの内容がそのままExcelになるはずです。

ルーティング作成

web.phpにルーティングを作成します。
下記コードをそのまま貼り付けて使用できます。

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

Route::get('/users/export', function () {
    return Excel::download(new UsersExport(), 'users.xlsx');
});

実際にサーバーを起動して出力

追加したルーティングにアクセスしてダウンロードしてみましょう。

http://localhost:8000/users/export

すると「users.xlsx」がダウンロードされます。
usersテーブルにデータがあれば、Excelファイル内に一覧が出力されます。

まとめ

Laravel12でLaravel Excelを使う流れは以下の通りです。

1. パッケージをインストール
2. Exportクラスを作成
3. collection()で出力データ定義
4. Excel::download()でダウンロード

基本はこれだけです。
他にも様々な機能が用意されているので、公式ドキュメントを読んで色々試してみるのも面白いです。
Laravel Excel公式ドキュメント

カテゴリーPHP