0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel Excel を用いてCSV出力する手順

Last updated at Posted at 2020-08-02

Laravel Excelに関しての情報があまり多くないので、備忘録としてアウトプット。
手順は、
1.パッケージのインストール
2.Excel.phpの生成
3.サービスプロバイダーの登録
4.エクスポートクラスの生成
となる。

#1.パッケージのインストール
composerを用いて、LaravelExcel3.1をインストールする。
必要なバージョン、PHP拡張モジュールは以下の通り。
・PHP 7.0以上
・Laravel 5.5以上
・PhpSpreadsheet 1.6以上
・php_zip、php_xml、php_gd2、php_iconv、php_simplexml、php_xmlreader、php_zlib

ルートディレクトリで以下のコマンドを実行する。

$ composer require maatwebsite/excel

インストール完了後、composer.lockを確認する。

"name": "maatwebsite/excel",
"version": "3.1.20",

ちゃんとインストールされている。

#2.Excel.phpの生成
ディレクトリ直下で以下のコマンドを実行する。

$ php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

・・・
Copied File [/vendor/maatwebsite/excel/config/excel.php] To [/config/excel.php]

config直下にexcel.phpが生成される。

#3.サービスプロバイダとファサードの登録
サービスプロバイダーにLaravel Excelを登録していく。
config/app.phpのprovidersに追記


'providers' => [

  /*
  * Package Service Providers...
  */
  Maatwebsite\Excel\ExcelServiceProvider::class,

 ]

続いてファサードに登録する。
config/app.phpのaliasesに追記


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

]

#4.エクスポートクラスを生成
エクスポートクラスを生成する。
以下のSampleの部分には、出力したいデータを持つモデル名を適宜記述する。

$ php artisan make:export SamplesExport --model=App\\Sample

app直下にExportsディレクトリ、Exports直下にSampleExport.phpが生成される。

#実際に出力してみる
コントローラーにexportメソッドを追加する。


public function export()
{
  return Excel::download(new SamplesExport, 'samples.csv');
}

ルーティングを追加する。


Route::get('export','SampleController@export');

設定したURLにアクセスすることで、出力されるはずです。

またこちらを参考に出力する表をビューで形成することもできます。
https://docs.laravel-excel.com/3.1/exports/from-view.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?