使用 Laravel Excel (https://github.com/SpartnerNL/Laravel-Excel) 开发 excel 导入导出功能,遇到 Class ‘AppImportsFirstSheetImport’ not found 错误。

其实错误原因很简单,就是因为直接抄了官网的示例代码,而没创建相应的类。具体如下:

namespace AppImports;

use MaatwebsiteExcelConcernsWithMultipleSheets;

class UsersImport implements WithMultipleSheets
{
  
    public function sheets(): array
    {
        return [
            new FirstSheetImport()
        ];
    }
}

因为 Laravel Excel 默认是导入全部 sheet 的,那么通过上面的代码,可以实现只导入第一个 sheet 。但是这里我们还要自行创建 FirstSheetImport 这个类的,否则就会报上面的错误。

解决方法就是创建对应的 FirstSheetImport 类:

namespace AppImports;

use IlluminateSupportCollection;
use MaatwebsiteExcelConcernsToCollection;

class FirstSheetImport implements ToCollection
{
    public function collection(Collection $rows)
    {
        //导入逻辑
    }
}

其实有更简单的默认导入第一个 sheet 方法的,详见:Laravel Excel 默认只导入第一个 sheet 的方法