haiju's 開発メモ

開発に必要な情報を自分用にメモ

EC2(AmazonLinux2)インスタンスのLaravel6でExcelを扱う

古いPHPコードには、PHPExcelが使用されていたがネットで検索してみると

後継版のPhpSpreadsheetを使いましょうという情報がある。

じゃぁ、Laravel6でもそれを使うのか?と思い更に検索してみると、上記

ライブラリをLaravel用に拡張したLaravel Excelというものがあって、それを

使うそうな(Φω|

PhpSpreadsheetの簡単な使い方を参照したところ、ほぼPHPExcelと基本的には

変わらないっぽいので移行的にはPHP5からPHP7で使えなくなったメソッド

等に注意したらよいのかな?と思った。

とりあえず、使い方とかインストール方法とかリファレンスをまとめてみる。

古いPHP5のソースを見ると、パッケージマネージャはComposerではなく、

PEARだった。そこはLaravelでComposerだから気にしなくてよいのだろうか?

インストール時はlaravel-oci8の件もあるのでスワップを1GBくらい作成して

実行するのが安全かもしれんw

[インストール手順]

1. composerでインストールを実行。

$ composer require maatwebsite/excel

 ※もしエラーになったら迷わず、swapを1GBほど作成後に再チャレンジw

2. インストールしたら自動で読み込まれるらしいが、手動で設定するなら、

 config/app.phpでService Providersの定義箇所の末端に下記1行を追加。

Maatwebsite\Excel\ExcelServiceProvider::class,

 ※laravel-oci8の定義した後に追加したらええがなw

 ※詳しく見たら、フレームワークとアプリケーションの間に、

  「Package Service Providers...」で括られていたので、こちらにlaravel-oci8

  と共に追加しておいた。

3. 同じくClass Aliasesの定義箇所の適当なところに下記1行を追加。

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

4. Laravelプロジェクトルートでvendor publishコマンドを実行して、

 config/excel.phpを作成。

$ php artisan vendor:publish

[ec2-user@ip-xxx-xxx-xxx-xxx test]$ php artisan vendor:publish

Which provider or tag's files would you like to publish?:
[0 ] Publish files from all providers and tags listed below
[1 ] Provider: Facade\Ignition\IgnitionServiceProvider
[2 ] Provider: Fideloper\Proxy\TrustedProxyServiceProvider
[3 ] Provider: Illuminate\Foundation\Providers\FoundationServiceProvider
[4 ] Provider: Illuminate\Mail\MailServiceProvider
[5 ] Provider: Illuminate\Notifications\NotificationServiceProvider
[6 ] Provider: Illuminate\Pagination\PaginationServiceProvider
[7 ] Provider: Laravel\Tinker\TinkerServiceProvider
[8 ] Provider: Maatwebsite\Excel\ExcelServiceProvider
[9 ] Provider: Yajra\Oci8\Oci8ServiceProvider
[10] Tag: config
[11] Tag: flare-config
[12] Tag: ignition-config
[13] Tag: laravel-errors
[14] Tag: laravel-mail
[15] Tag: laravel-notifications
[16] Tag: laravel-pagination
[17] Tag: oracle
[18] Tag: stubs
> 10

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

※下記コマンド実行でも可。

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

5. apache再起動で読み込まれれば使えるようになる(はず)。

 ※もちろんサンプルプログラムを作って確認要。

[参考サイト]

github.com

docs.laravel-excel.com

qiita.com

www.ritolab.com

pgmemo.tokyo

stackoverflow.com

trueman-developer.blogspot.com

qiita.com

qiita.com

tech-blog.rakus.co.jp

blitzgate.co.jp

phpspreadsheet.readthedocs.io

phpspreadsheet.readthedocs.io

blitzgate.co.jp