新版 Laravel Excel maatwebsite/excel 3.* 使用说明
maatwebsite/excel 3.* 核心的功能梳理:
安装:
composer require maatwebsite/excel
新版已经不需要我们手动注册服务类了,very beautiful ! 原文:
注意:在 3.* 版本之后,不兼容老版本,相关类方法已经无法使用。官方文档中已说明:
大概意思是说:3.* 版本不兼容 2.*,而是一个新的完整规范。
现在看看新版的 maatwebsite/excel 包到底干了啥吧。
先看看导入(import):
php artisan make:import Import/TestImport
改命令会在 App\Imports 目录下生成 Import/TestImport 类文件。默认实现的是 ToCollection接口,随便写下代码,打印一下 collection :
然后在 controller 中调用: Excel::import(new TestImport(), $path);
发起测试请求,看看结果:
正如想的一样,标准的 collection 数据,现在你可以想干嘛就干嘛了!
如果你想要在controller中调用导入表格的数据,可以使用 ::toArray() or ::toCollection(),原文:
新版本还加入了许多其他有趣的玩法,比如:校验 validation, 队列 queue, 命令行 command…
都十分有意思。
还有一个需要看的地方:Trait: Importable, 此特性我觉得写代码的都应该看看,相信你会有更多的收获。
再来说说导出(export):
同样命令行:
php artisan make:export TestExport
你会发现和 import 类文件“一模一样”,不过 *Export 类实现的接口变了,toCollection 变成了 FromCollection,这里就借用官方示例的代码了:
和 import 一样,export 也有一个 Trait : Exportable, 这里也会有很多收获。除此之外作者还提供了“集合宏”方法:
这样我们就可以快捷导数据为 Excel 文件了。
###
很多人可能很关心,新版如何使用以前老版本的代码风格。比如:我不想 make 一个 export 或者 import, 那怎么解析excle,或者数据怎么导出excle, 自己处理???官方手册文档中好像没有说明,也没有提示。可能是作者不再推荐以前的代码逻辑了吧。。。除了上面提到的“集合宏”方法,大家还可以看看2个 Trait 哈。别问哪两个 Trait 哈,都说了写代码都应该看看,肯定会有收获的!
写在最后:
大概溜了一片官方手册,3.*版本改动确实挺大的(可能是这两年微服务太火了吧,感觉作者有意在向独立服务上靠,个人随便猜的哈,哈哈哈…)。
建议之前有使用老版本的谨慎升级。
新版一样的好用,个人觉得比以前还要好用,必须得感谢一下作者大佬!
本作品采用《CC 协议》,转载必须注明作者和本文链接