Laravel9のLaravel-excelでClass”Maatwebsite\Excel\ExcelServiceProvider” not found とエラーが出たけど解決した

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

これでエラーは解決しました。

この記事を書いた人

アイティーエス株式会社

群馬県前橋市にあるアイティーエスは、アプリケーションの開発に核を置きながら、安定したネットワークの構築、業務コンサルティングから業務分析、設計、運用管理までの一貫したビジネスモデルを確立いたします。お問い合わせはこちら