大家好,我是程式設計師魚皮。就在昨天,GitHub 上一個知名的開源專案 Easy Excel 官宣停止更新,下面是官方原文:
公告中表示,Easy Excel 將進入維護模式,會進行 Bug 修復,但不再主動新增功能。其實約等於停止更新了,只不過是一種委婉地表達罷了。
可能有同學還不瞭解 Easy Excel,這是國內主流的 Java 解析 Excel 的開源工具庫,在 GitHub 上有 30k+ 的 star。能夠幫助開發者用更少的記憶體從 Excel 中讀取資料、或者生成 Excel 檔案。官方測試只需要 16M 記憶體就能讀取 75M(46W 行 25 列)的 Excel 檔案!
我個人非常喜歡這個庫,除了效能高之外,還有很多其他原因。首先是它提供了簡單易用的 API 來讀寫 Excel,比如透過下面這行程式碼,就能獲取到 Excel 中的資料了:
List<DemoData> list = EasyExcel.read(fileName)
.head(DemoData.class)
.sheet()
.doReadSync();
而且它的官方文件寫得非常清晰,進一步降低了使用門檻。有一說一,咱們很多國產框架的文件寫得都不錯~
透過官方文件可以瞭解到,Easy Excel 支援同步和非同步讀取、自定義格式轉換等操作,能夠滿足大多數常見的需求了。
我做技術選型時,除了效能和易用性之外,還會特別關注框架的生態和活躍度。很多框架可能做著做著,就突然不更新了,導致後面出了問題也沒法解決,只能換一個技術,這種情況可以讓開發者瞬間高血壓。
Easy Excel 雖然只是一個工具庫,但大家可能想象不到維護這樣一個小專案,難度有多大。
可以看到該專案光是在 GitHub 上就有 3000 多個 Issues 問題,官方處理了 3000 多個,未處理的也基本很快就回復了。
從提交記錄來看,這個專案維護了 6 年,平均每天都要處理幾個問題,跟每日任務似的。也看得出來 Easy Excel 官方確實很用心地在維護這個專案,而不是所謂的 KPI 專案,點個贊 👍🏻!
所謂的 KPI 專案,是指為了績效或者晉升專門搞的專案,可能評完績效或者晉升之後,就不再維護了。
這也是我樂意使用 Easy Excel 的原因,但是官方公告中的有一點我還挺在意的:
官方說市面上出現了很多的資料處理工具,我不禁在想,對處理 Excel 表格這個場景來說,還有哪些替代方案呢?
我調研了一些,比如:
1)Apache POI:老牌的文件處理庫,被廣泛使用於多個大型專案和企業,社群活躍。但記憶體佔用較高,對於大檔案的效能並不理想。
2)Excel4J:個人開源的 Excel 處理庫,star 數不多,上次更新時間是去年,社群不活躍。
3)Aspose.Cells:功能強大,但是屬於商業產品,需要購買許可證,我選擇放棄。
4)opencsv:適用於處理 CSV 檔案,但是看到它的文件我直接放棄。
逛了一圈下來,我還沒有發現免費開源的 Easy Excel 的替代品。不過好在大家不用擔心,Easy Excel 仍然是可以正常使用的,不需要急著去找替代方案。
大家有什麼好用的資料處理工具、類庫或框架麼?歡迎評論區留言分享~