ARTICLE · 1023788
还在用 EasyExcel 的注意了:它已停止维护
上周有位老哥在后台私信我:“公司项目还躺在 EasyExcel 4.0.3 上,这玩意还能用吗?”
我回他一句:能用,但建议你尽快安排迁移。
原因很简单:EasyExcel 的 GitHub 仓库早在 2025 年 9 月就被阿里正式归档了,变成只读状态。它不仅没有新功能,连 Bug 都没人修了。
但这个故事有个相当精彩的后续:EasyExcel 的原作者在离开阿里后重写了一个项目 FastExcel,而 FastExcel 最近又“毕业”进了 Apache 软件基金会,更名为 Apache Fesod (Incubating)。
今天这篇文章,就把这条“一年三连跳”的换代路线讲清楚,顺便给你一套可以直接抄的迁移方案。
一、EasyExcel 是怎么“凉”的
先简单回顾一下历史。EasyExcel 是阿里 2018 年开源的 Java Excel 处理库,巅峰时期在 GitHub 上累计拿下超过 33,000 颗 Star,是当年最火的 Java 项目之一。
它最大的贡献,是把 Excel 解析方式换成了 SAX 流式解析——不把整个文件一次性怼进内存,而是一行一行地读。官方数据是:16MB 内存就能读取 75M(46 万行 25 列)的 Excel,耗时 23 秒。在 POI 动不动就 OOM 的年代,这就是救星级别的存在。
但拐点出现在 2023 年:EasyExcel 的核心作者玉箫从阿里离职。之后项目进入了事实上的停更状态:
GitHub Issues 响应延迟超过 30 天; PR 合并基本停滞; 近半年没有正式版本发布(最后一个 v3.3.2 停在 2023 年 10 月); 对 Spring Boot 3.x、Java 21、Apache POI 5.x 的兼容支持持续滞后。
2024 年 11 月,阿里官宣 EasyExcel 进入维护模式;2025 年 9 月,仓库正式归档、只读。
一个 33k Star 的项目就这样画上了句号。但就在大家一筹莫展的时候,原作者站了出来。
二、FastExcel 接棒,然后“毕业”进了 Apache
1. FastExcel:不是 fork,是重构
2024 年 12 月,原作者公开了新项目 FastExcel。很多人以为是 EasyExcel 换个马甲,结果一看代码才发现这是一场彻底重构。它做了三件关键的事:
- 性能继续压榨
:在 SAX 解析基础上进一步优化内存与 IO,有开发者实测从 EasyExcel 切过去后,处理时间从近 1 分钟降到 18 秒左右,内存峰值控制在 800MB 以内; - 补齐实用特性
:1.0.0 就支持读取指定行数、Excel 转 PDF 等原本要自己写一堆代码的功能; - 兼容 EasyExcel API
:换包名和 Maven 依赖即可完成迁移,很多项目一行代码都不用改。
FastExcel 上线一个月,Star 就突破了 1.8K。
2. Fesod:不是“又凉了”,是“毕业”了
如果你最近去 GitHub 搜 FastExcel,可能会发现原项目搜不到了——别慌,它不是死了,而是被整套捐给了 Apache 软件基金会,成为 Apache POI 的子项目,更名为 Apache Fesod (Incubating)。Fesod 的全称是 Fast. Easy. Spreadsheet and Other Documents。
2026 年 1 月 21 日,Fesod 发布了第一个孵化版本 2.0.0-incubating;2 月 11 日,2.0.1-incubating 紧随其后。
这意味着代码所有权从个人/公司转给了 Apache 基金会——和 POI、Maven、Tomcat 一个待遇。长期维护有了保障,不会再出现“核心作者一离职就停更”的剧本。
三、迁移三步走:从 FastExcel / EasyExcel 到 Fesod
先回答一个高频问题:上个月刚改完 import,怎么又换名字了?
别紧张,这次不是停更,是升级。判断标准很简单:新项目直接上 Apache Fesod,少一次后续迁移;老项目按下面三步走。
第一步:替换 Maven 依赖
第二步:修改导入包
把 cn.idev.excel(EasyExcel 用户则是 com.alibaba.excel)统一改成 org.apache.fesod:
第三步:换入口类
入口类从 EasyExcel / FastExcel 换成 Fesod,链式 API 几乎一模一样:
IDEA 里用 Replace in Files(Ctrl+Shift+R)全局替换包名,两分钟就能搞定一个中型项目。唯一要留心的是 2.x 相比 1.x 有少量 API 微调,编译报红的地方逐个确认即可。
四、实战:百万行订单导出不 OOM
迁移完了,来点真家伙。下面是我按 Fesod 的写法重构的一个分页流式导出接口,边查库边写 Excel,百万行数据内存也不炸:
对应的导出实体类,用 @ExcelProperty 标注列名即可:
跑起来之后,观察一下 GC 情况:
百万行导出,内存峰值稳稳控制在 1GB 以内,这就是流式写入的底气——有物流企业切换到这套方案后,报表生成时间从 4 小时缩短到 20 分钟,服务器资源占用减少 60%。
五、6 种 Excel 方案怎么选
再看一组 50 万行写入的性能实测数据:
| 7 次 | 68ms | 综合最优 | ||
Fesod 的写入速度和其他流式框架在同一量级(差异不到 10%),但内存效率遥遥领先——GC 次数只有其他框架的 40% 左右。高并发场景下,一次长 GC 暂停就可能抵消所有速度优势,所以综合来看 Fesod 更值得押注。
六、优缺点,不吹不黑
优点
- API 无缝迁移
:从 EasyExcel 到 FastExcel 再到 Fesod,API 几乎一致,迁移成本极低; - 流式处理,百万行不 OOM
:继承 SAX 流式解析基因,内存占用始终在 MB 级; - 功能持续迭代
:读取指定行数、Excel 转 PDF 等实用能力不断补齐; - Apache 基金会保障
:代码所有权转给基金会,长期维护有靠山; - 协议商业友好
:MIT / Apache 2.0,商业场景免费使用、可二开; - 内存效率领先
:GC 次数约为其他流式框架的 40%。
缺点
- 还在孵化阶段
:2.x API 相比 1.x 有少量微调,随时可能变动; - 命名变迁有点乱
:一年三连跳,很多人刚改完 FastExcel 又得改 Fesod; - FastExcel 已不再更新
:1.3.0 之后不会再有新功能和 Bug 修复; - 迁移仍需改代码
:换坐标、改 import、换入口类,工作量不大但不是零。
七、选型建议
最后回到开头的问题:EasyExcel 凉了吗?凉了,2025 年 9 月仓库归档,不再有任何维护。FastExcel 死了吗?没有,它只是“毕业”了——从个人项目升级成了 Apache 基金会的孵化项目。
对开发者来说,行动清单其实就两条:新项目直接上 Apache Fesod;老项目排期迁移,从 EasyExcel / FastExcel 切到 Fesod。别因为“又要改代码”就犹豫,这次换来的是 Apache 级的长期维护保障。
选开源库,就是在选一个未来三年还活着的靠山——不要只看它现在有多火,要看它背后是谁在兜底。
·················END·················
如果觉得这篇对你有帮助,点个“在看”,加个“星标”,下次推送就不会迷路啦。你的支持,就是我持续输出的最大动力,谢谢!😀