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行を追加。
4. Laravelプロジェクトルートでvendor publishコマンドを実行して、
$ 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
> 10Copied File [/vendor/maatwebsite/excel/config/excel.php] To [/config/excel.php]
Publishing complete.※下記コマンド実行でも可。
$ php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
5. apache再起動で読み込まれれば使えるようになる(はず)。
※もちろんサンプルプログラムを作って確認要。
[参考サイト]