菜单
本页目录

EasyExcel

什么是 EasyExcel?

EasyExcel 是阿里巴巴开源的一个基于 POI 封装的 Excel 处理工具。它基于 Java,提供了快速、简洁的方式来处理 Excel 文件,尤其在处理大文件时,能够有效避免内存溢出问题。EasyExcel 能帮助开发者在不必过多考虑性能和内存使用的情况下,快速完成 Excel 的读写操作。

更多内容请参考 官方文档(在新窗口打开)。

EasyExcel 要解决 POI 的哪些问题?

由于 EasyExcel 是基于 POI 封装的,它的主要目标是提升易用性、封装性和性能。Java 中解析和生成 Excel 文件的框架中,较为知名的有 Apache POI 和 JXL,但它们都存在一个严重的问题:内存占用过高。

POI 的问题

  • 内存消耗大:POI 提供了一套 SAX 模式的 API 来在一定程度上缓解内存溢出问题,但在处理较大的 Excel 文件(尤其是 07 版 Excel 文件)时,内存消耗依然很大。原因在于 07 版 Excel 的解压缩和解压后的数据存储都在内存中进行。
  • 性能问题:例如,一个 3M 的 Excel 文件,用 POI 的 SAX 模式解析时,仍然需要大约 100M 的内存。

EasyExcel 的改进

  • 低内存消耗:EasyExcel 重写了 POI 对 07 版 Excel 文件的解析,一个 3M 的 Excel 文件使用 EasyExcel 解析时,内存消耗可以降到几 MB。
  • 更高的易用性:03 版的 Excel 文件依赖 POI 的 SAX 模式,EasyExcel 在上层封装了模型转换,使得开发者使用起来更加简单方便。
  • 支持大文件:无论文件多大,EasyExcel 都能避免出现内存溢出的问题。