新版 Laravel Excel maatwebsite/excel 3.* 使用說明

Diego_crazy發表於2020-09-05

maatwebsite/excel 3.* 核心的功能梳理:
安裝:

composer require maatwebsite/excel

新版已經不需要我們手動註冊服務類了,very beautiful ! 原文

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明

注意:在 3.* 版本之後,不相容老版本,相關類方法已經無法使用。官方文件中已說明:

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明
大概意思是說:3.* 版本不相容 2.*,而是一個新的完整規範。

現在看看新版的 maatwebsite/excel 包到底幹了啥吧。
先看看匯入(import):

php artisan make:import Import/TestImport

改命令會在 App\Imports 目錄下生成 Import/TestImport 類檔案。預設實現的是 ToCollection介面,隨便寫下程式碼,列印一下 collection :

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明
然後在 controller 中呼叫: Excel::import(new TestImport(), $path);

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明

發起測試請求,看看結果:

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明
正如想的一樣,標準的 collection 資料,現在你可以想幹嘛就幹嘛了!
如果你想要在controller中呼叫匯入表格的資料,可以使用 ::toArray() or ::toCollection(),原文

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明
新版本還加入了許多其他有趣的玩法,比如:校驗 validation, 佇列 queue, 命令列 command…
都十分有意思。
還有一個需要看的地方:Trait: Importable, 此特性我覺得寫程式碼的都應該看看,相信你會有更多的收穫。
再來說說匯出(export):
同樣命令列:

php artisan make:export TestExport

你會發現和 import 類檔案“一模一樣”,不過 *Export 類實現的介面變了,toCollection 變成了 FromCollection,這裡就借用官方示例的程式碼了:

新版 Laravel Excel  maatwebsite/excel 3.* 使用說明
和 import 一樣,export 也有一個 Trait : Exportable, 這裡也會有很多收穫。除此之外作者還提供了“集合巨集”方法:
新版 Laravel Excel  maatwebsite/excel 3.* 使用說明
這樣我們就可以快捷導資料為 Excel 檔案了。

###
很多人可能很關心,新版如何使用以前老版本的程式碼風格。比如:我不想 make 一個 export 或者 import, 那怎麼解析excle,或者資料怎麼匯出excle, 自己處理???官方手冊文件中好像沒有說明,也沒有提示。可能是作者不再推薦以前的程式碼邏輯了吧。。。除了上面提到的“集合巨集”方法,大家還可以看看2個 Trait 哈。別問哪兩個 Trait 哈,都說了寫程式碼都應該看看,肯定會有收穫的!:smirk: :smirk: :smirk: :smirk::smirk: :smirk:

寫在最後:

大概溜了一片官方手冊,3.*版本改動確實挺大的(可能是這兩年微服務太火了吧,感覺作者有意在向獨立服務上靠,個人隨便猜的哈,哈哈哈…)。
建議之前有使用老版本的謹慎升級。
新版一樣的好用,個人覺得比以前還要好用,必須得感謝一下作者大佬!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章