Laravelでエクセルを取り込み・出力しようとして調べてみると、「Laravel-excel」ライブラリを使えば簡単にできると判明したので、インストールしてみることに。
しかし、Class “Maatwebsite\Excel\ExcelServiceProvider” not found とエラーが出て先に進めずにいましたが無事解決したのでメモ。
※エラーの解決だけなので、Excelの操作などのメモは残していません。
Laravelの実行環境
Laravel 9.14.0
Laravel-excelのインストール・設定手順
インストール・設定手順は以下。
1.Laravel-Excelのインストールコマンド実行
2.設定ファイルにサービスプロパイダとファザードを登録
上記を順番に説明していきます。
1.Laravel-Excelのインストールコマンド実行
対象ディレクトリで以下のコマンドを実行し、ライブラリをインストールします。
composer require maatwebsite/excel
2.設定ファイルにサービスプロパイダとファザードを登録
次に、設定ファイルにサービスプロパイダとファサードを登録します。
設定ファイルは、laravel/config/app.phpにあります。
'providers' => [
Maatwebsite\Excel\ExcelServiceProvider::class,
],
'aliases' => [
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],
ここでインストールが上手くされているか以下のコマンドを実行。
composer dump-autoload
これは、処理に必要なPHPファイルを自動で読み込んでくれます。
ここでエラーが発生
composer dump-autoloadを実行したところ、Class “Maatwebsite\Excel\ExcelServiceProvider” not found というエラーが発生し、調べてみるとExcelServiceProviderクラスが存在しないとのこと。
名前空間やディレクトリにミスがないか確認しましたが、何も問題なし。
エラーの解決
調べても同じような人がいないため、「Laravel-excel 」はLaravel9に対応していないのかなと思い公式サイトを確認することに。
Laravel9以降は依存関係?の問題で「Laravel-excel」をインストール時に「simple-cache」を指定して同時にインストールする必要があったようです。
composer require psr/simple-cache:^2.0 maatwebsite/excel
これでエラーは解決しました。