Skip to content
guanquan.wang edited this page Oct 9, 2025 · 13 revisions

欢迎使用EEC!!!

EEC的设计初衷是为了解决Apache POI高内存且API臃肿的诟病,使用EEC基本可以做到一行代码完成Excel文件的读和写操作极易上手。

EEC的最大特点是“轻量”和“高效”,轻量体现在包体小、接入代码量少以及运行时消耗资源少三个方面,高效指运行效率高

  • 包体小:EEC和必要依赖包共约900K
  • 接入代码量少:无论读写均可以一行代码实现
  • 消耗资源少:单线程设计,极限运行内存小于10M

核心原理:

  • 导出大数据时使用分片处理
  • 单元格样式仅使用一个int值来保存,极大缩小内存使用
  • 使用迭代模式读取行内容,不会将整个文件读入到内存

下面是迭代模式读取文件的示意图

采用“pull”方式的好处是当用户需要某行数据时才去解析它们来实现延迟读取。

题外话

EEC项目大约始于2017年初,当时市面上除了POI外没有太多可供选择的工具,即使后来比较热门的Easyexcel也是2018年2月才开源的, 工作上确实需要支持较大数据量的导出所以就萌生了去了深入了解xlsx格式的想法,人啊一旦有了想法就要开始折腾了,就这样EEC项目诞生了。

里程碑

  • 2017年初 项目诞生
  • 2017.10 项目开源,支持导出xlsx
  • 2018.10 支持读取xlsx
  • 2019.6 推送eec第一个正式版
  • 2020.4 推送第一个eec-e3-support正式版
  • 2023.10 ExcelReader重大优化,读取性能提升1倍以上
  • 2025.2 开放性能模式,导出性能提升60%~100%

Clone this wiki locally