【Laravel】CSV出力する方法

最終更新日

Laravel 8でCSV出力を行うには、以下の手順を実行します。

maatwebsite/excelパッケージのインストール

Laravel Excelパッケージを使用してCSVファイルを生成します。まず、Composerを使用してパッケージをインストールします。

composer require maatwebsite/excel

config/app.phpの設定

config/app.phpファイルを開き、providers配列に次の行を追加します

'providers' => [
    // ...
    Maatwebsite\Excel\ExcelServiceProvider::class,
],

また、aliases配列に次の行を追加します。

'aliases' => [
    // ...
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],

コントローラーの作成

php artisan make:controller CsvExportControllerコマンドを使用して、CSVエクスポート用の新しいコントローラーを作成します。

php artisan make:controller CsvExportController

CsvExportControllerの実装

作成されたCsvExportController.phpファイルを開き、以下のコードを追加します。

<?php

namespace App\Http\Controllers;

use App\Models\YourModel; // モデル名を適切に置き換えてください
use Maatwebsite\Excel\Facades\Excel;

class CsvExportController extends Controller
{
    public function export()
    {
        $data = YourModel::all(); // モデル名を適切に置き換えてください

        return Excel::download(function ($writer) use ($data) {
            $writer->setTitle('Data Export');
            $writer->setCreator('Your Name');
            $writer->sheet('Sheet 1', function ($sheet) use ($data) {
                $sheet->fromArray($data);
            });
        }, 'data.csv');
    }
}

上記のコードでは、YourModelを適切なモデル名に置き換えています。また、setTitlesetCreatorメソッドを使用して、CSVファイルの詳細情報を設定できます。


ルートの設定

routes/web.phpファイルを開き、以下のルートを追加します。

use App\Http\Controllers\CsvExportController;

Route::get('/export-csv', [CsvExportController::class, 'export']);

CSV出力の実行

  1. ブラウザやAPIクライアントから /export-csv にアクセスすると、CSVファイルがダウンロードされます。

これで、Laravel 8でCSV出力が行われます。

シェアする

上にスクロール