【Laravel】CSV出力する方法
Laravel 8でCSV出力を行うには、以下の手順を実行します。
maatwebsite/excelパッケージのインストール
Laravel Excelパッケージを使用してCSVファイルを生成します。まず、Composerを使用してパッケージをインストールします。
composer require maatwebsite/excelconfig/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 CsvExportControllerCsvExportControllerの実装
作成された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を適切なモデル名に置き換えています。また、setTitleやsetCreatorメソッドを使用して、CSVファイルの詳細情報を設定できます。
ルートの設定
routes/web.phpファイルを開き、以下のルートを追加します。
use App\Http\Controllers\CsvExportController;
Route::get('/export-csv', [CsvExportController::class, 'export']);CSV出力の実行
- ブラウザやAPIクライアントから
/export-csvにアクセスすると、CSVファイルがダウンロードされます。
これで、Laravel 8でCSV出力が行われます。