Laravel Excel 默认会导入全部 sheet 的数据,当一个文件有多个工作表时,每个工作表都会经过导入对象。如果您想分别处理每张工作表,则需要实现 WithMultipleSheets 接口。通过 sheets() 方法返回一个工作表导入对象数组。数组的顺序很重要,数组中的第一个工作表导入对象将自动链接到 Excel 文件中的第一个工作表。
namespace AppImports;
use MaatwebsiteExcelConcernsWithMultipleSheets;
class UsersImport implements WithMultipleSheets
{
public function sheets(): array
{
return [
0 => new FirstSheetImport()//用于导入第一个 sheet
];
}
}
然后创建对应的 FirstSheetImport 即可
namespace AppImports;
use IlluminateSupportCollection;
use MaatwebsiteExcelConcernsToCollection;
class FirstSheetImport implements ToCollection
{
public function collection(Collection $rows)
{
//
}
}
如果嫌两个类麻烦,那也可以通过创建对本身的引用的方式来更简单的实现:
namespace AppImports;
use MaatwebsiteExcelConcernsWithMultipleSheets;
class UsersImport implements WithMultipleSheets
{
public function sheets(): array
{
return [
0 => $this,
];
}
}
这样你就可以在一个类里继续写其他的导入逻辑了。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel Excel 默认只导入第一个 sheet 的方法
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel Excel 默认只导入第一个 sheet 的方法