欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

POI读取Excel内存溢出的问题---easyexcel使用

程序员文章站 2024-03-21 13:32:46
...

两个版本的最大行数和列数不同,2003版最大行数是65536行,最大列数是256列,2007版及以后的版本最大行数是1048576行,最大列数是16384列。

POI读取Excel有两种模式,一种是用户模式,一种是SAX模式,将xlsx格式的文档转换成CVS格式后再进行处理用户模式相信大家都很清楚,也是POI常用的方式,用户模式API接口丰富,我们可以很容易的使用POI的API读取Excel,但用户模式消耗的内存很大,当遇到很多sheet、大数据网格、假空行、公式等问题时,很容易导致内存溢出。

推荐一个比较成熟的项目easyexcel来解决这个问题,项目主页地址:https://github.com/alibaba/easyexcel

其实项目的demo测试里面已经写的很清楚怎么使用。

简单说一下读取文件

ExcelListener listener = new ExcelListener();
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(tmpFile));
EasyExcelFactory.readBySax(inputStream, new com.alibaba.excel.metadata.Sheet(1, 0),listener);
List<Object> dataList =listener.getDatas();

 

相关标签: easyexcel poi