【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
を適切なモデル名に置き換えています。また、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出力が行われます。