WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Laravel ExcelでExcelファイルの作成

Laravel ExcelでExcelファイルの作成

このエントリーをはてなブックマークに追加

Laravel ExcelでExcelファイルを作成するには、createメソッドを使用します。

Excel::create(ファイル名,クロージャー)

createメソッドの第1引数には、作成するExcelファイル名、第2引数には、クロージャー(無名関数)を指定します。

(例)

Excel::create('Filename',function($excel){
 //ここに作成するExcelのメソッドを記述します。
});

プロパティの変更

書き出すExcelファイルのプロパティは、デフォルトで、app/config/packages/maatwebsite/excel/config.phpの19行目以下の内容が適用されます。

/*
 |--------------------------------------------------------------------------
 | Default properties
 |--------------------------------------------------------------------------
 |
 | The default properties when creating a new Excel file
 |
 */
 'properties' => array(
 'creator' => 'Maatwebsite',
 'lastModifiedBy' => 'Maatwebsite',
 'title' => 'Spreadsheet',
 'description' => 'Default spreadsheet export',
 'subject' => 'Spreadsheet export',
 'keywords' => 'maatwebsite, excel, export',
 'category' => 'Excel',
 'manager' => 'Maatwebsite',
 'company' => 'Maatwebsite',
 ),

デフォルトのプロパティを変更したい場合は、ここを変更して下さい。特に、creatorやmanager、company等は変更しておいた方がいいと思います。

さらに、作成するExcelファイルごとに変更したい場合は、set+プロパティ名メソッドを使用します。

(例)

Excel::create('Filename',function($excel){
 //タイトルの変更
 $excel->setTitle('Winroda徒然草');
 //作成者の変更
 $excel->SetCreator('nakada')->setCompany('builwing');
 //概要(説明文)の変更
 $excel->setDescription('このファイルはWinroadが作成しました');
 });

 エクスポート

作成したExcelファイルを書き出すには、exportメソッドか、downloadメソッドを使用します。exportメソッドとdownloadメソッドの引数には、書き出すファイルの拡張子を指定します。

  • export(‘xls’),download(‘xls’)
    拡張子がxlsのExcel97-2003ブックを書き出します。
  • export(‘xlsx’)、download(‘xlsx’)
    拡張子がxlsxのExcel2007ブックを書き出します。
  • export(‘csv’)、download(‘csv’)
    拡張子がcsvのCSVファイルを書き出します。

(例)

Excel::create('Filename',function($excel){
 //ここにExcelファイルを作成するメソッドを記述します。
 })->export('xlsx');

サーバーに保存

作成したExcelファイルをサーバーに保存するには、storeメソッドを使用します。保存場所は、デフォルトで、app/storage/exportsフォルダになっています。

このデフォルトフォルダは、app/config/packages/maatwebsite/excel/export.phpの123行目に指定されていますので、デフォルトフォルダを変更する場合は、ここを修正します。

/*
 |--------------------------------------------------------------------------
 | Store settings
 |--------------------------------------------------------------------------
 */
'store' => array(
/*
 |--------------------------------------------------------------------------
 | Path
 |--------------------------------------------------------------------------
 |
 | The path we want to save excel file to
 |
 */
 'path' => storage_path('exports'),

また、ファイルごとに、保存場所を変更したい場合は、sotoreメソッドの第2引数に、指定することもできます。

(例)

Excel::create('Filename',function($excel){
 //ここに作成するExcelのメソッドを記述します。
 })->store('xlsx',public_path('excel');

尚、保存と書出を同時にする場合はメソッドチェーンを使用します。

->sotore(‘xlsx’)->export(‘xlsx’);

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です