alibaba /easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具

★ 33,553⑂ 7,523
JavaCreated 2018-02-06easyexcel.opensource.alibaba.com
33,553
stars
+-12+-12+-54
7,523
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

EasyExcel
======================





 维护公告
尊敬的EasyExcel用户们:   

首先,我们想表达最深的谢意,感谢您长期以来对EasyExcel的信任与支持。在这段旅程中,EasyExcel有幸陪伴众多开发者和企业共同成长,见证了无数数据处理任务的高效完成。

近期,我们注意到市场上出现了更多优秀的数据处理工具和解决方案,为用户提供了更丰富的选择。为了确保每位用户都能享受到最佳的体验和服务,我们决定采取一项重要措施:EasyExcel将逐步进入维护模式,并给予用户充足的时间评估并迁移到其他产品。同时,我们也欢迎并乐于见到社区内外分享关于同类优秀产品的使用心得和迁移经验,共同促进技术生态的健康发展。  

请放心,即使进入维护模式,我们仍会确保EasyExcel的基本功能稳定运行,会进行Bug修复,但不再主动新增功能。我们相信,通过大家的共同努力,每一段代码、每一个项目都将继续在各自的领域发光发热,服务于更广泛的用户群体。
再次感谢您对EasyExcel的支持与理解!期待在技术的广阔天地里,我们能以新的形式再度携手,共创辉煌。   

祝您在未来的工作与学习中一切顺利! 

阿里巴巴EasyExcel团队敬上   

 新手必读

 官方网站:https://easyexcel.opensource.alibaba.com/
 github地址:https://github.com/alibaba/easyexcel
 gitee地址:https://gitee.com/easyexcel/easyexcel


 JAVA解析Excel工具

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。  
easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便


 16M内存23秒读取75M(46W行25列)的Excel(3.2.1+版本)

当然还有极速模式
能更快,但是内存占用会在100M多一点
!img

 最新版本

xml


    com.alibaba
    easyexcel
    4.0.3



 帮忙点个⭐Star

开源不易,如果觉得EasyExcel对您的工作还是有帮助的话,请帮忙在
的右上角点个⭐Star,您的支持是使EasyExcel变得更好最大的动力。

 如何获取帮助

 优先建议自己通过文档来解决问题

 快速开始
 常见问题
 API

 其次建议通过issues来解决解决问题

可以尝试在以下2个链接搜索问题,如果不存在可以尝试创建issue。

 去 github 搜索issues
 去 gitee 搜索issues

通过 issues 解决问题,可以给后面遇到相同问题的同学查看,所以比较推荐这种方式。   
不管github、gitee都会定期有人回答您的问题,比较紧急可以在提完issue以后在钉钉群艾特群主并发送issue地址帮忙解决。   
QQ 公司不让用,有时候也会去看,但是核心肯定还是在钉钉。

 也可以加入钉钉&QQ群来解决问题

加入钉钉或QQ群,看完公告可以获得帮助 。  
比较推荐钉钉群,QQ 公司不让用,当然QQ群也会有热心网友帮忙解决。   
QQ1群(已满): 662022184  
QQ2群(已满): 1097936804  
QQ3群(已满): 453928496  
QQ4群(已满): 496594404   
QQ5群(已满): 451925680   
QQ6群(已满): 784741035   
QQ7群(已满): 667889383   
QQ8群: 113968681   
钉钉1群(已满): 21960511  
钉钉2群(已满): 32796397  
钉钉3群(已满): 33797247  
钉钉4群(已满): 33491624  
钉钉5群(已满): 32134498  
钉钉6群(已满): 34707941  
钉钉7群(已满): 35235427  
钉钉8群(已满): 44752220   
钉钉9群(已满): 11045002277   
钉钉10群(已满): 27360019755   
钉钉11群(已满):24330026964   
钉钉12群(已满):27210038956   
钉钉13群:83695000992   


 维护者

姬朋飞(玉霄)、庄家钜

 快速开始

 读Excel

demo代码地址:https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/read/ReadTest.java   
详细文档地址:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read

java
    /
     最简单的读
     1. 创建excel对应的实体对象 参照{@link DemoData}
     2. 由于默认一行行的读取excel,所以需要创建excel一行一行的回调监听器,参照{@link DemoDataListener}
     3. 直接读即可
    /
    @Test
    public void simpleRead() {
        String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
        // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
        EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
    }


 写Excel

demo代码地址:https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java   
详细文档地址:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write

java
    /
      最简单的写

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON