LoginSignup
13
20

More than 3 years have passed since last update.

Laravel Excel 3.1 導入 + 使用例

Last updated at Posted at 2019-07-01

概要

Laravel-Excelの導入方法と使い方の紹介です.公式ドキュメントに同じものがあります.

目盛線や印刷の向きなどの設定方法はこちらにまとめています.

環境

  • Laravel 5.8
  • Laravel-Excel 3.1

インストール

次のコマンドを打ちます:

composer require maatwebsite/excel

これでvender以下にLaravel-Excel用のファイルが追加されます.

次にLaravelの設定をしていきます.まずconfig/app.phpに

config/app.php
'providers' => [
    /*
     * Package Service Providers...
     */
    Maatwebsite\Excel\ExcelServiceProvider::class,  //追加
]
config/app.php
'aliases' => [
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,  //追加
]

この2行を追加します.追加後コンソールで

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

を実行して,インストール完了です.

使用例

Userを出力してみます.まず

php artisan make:export UsersExport --model=User

を実行して,必要なファイルを作成します.ファイルは app/Exports/UsersExport.php に作成されます.作成されたファイルは

App/Exports/UsersExports.php
<?php

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

のようになっています.

次にコントローラに

UserController.php
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

を追加します.あとはルートを

routes/web.php
Route::get('/users/export','UserController@export');

追加すれば完了です.

出力形式の指定

出力形式を指定する場合は次のようにします:

UserController.php

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
use Maatwebsite\Excel\Excel as ExcelType

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx', ExcelType::XLSX);
    }
}

ちなみに

return Excel::download(new UsersExport, 'users.xlsx', 'Xlsx');

としても動きます(推奨はしません).対応している形式は

ExcelType::XXXX 実体
XLSX 'Xlsx'
CSV 'Csv'
TSV 'Csv'
ODS 'Ods'
XLS 'Xls'
SLK 'Slk'
XML 'Xml'
GNUMERIC 'Gnumeric'
HTML 'Html'
MPDF 'Mpdf'
DOMPDF 'Dompdf'
TCPDF 'Tcpdf'

です.

参考

公式ドキュメント

13
20
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
13
20