当前位置:   article > 正文

POI导入大批量Excel数据,解决OOM问题(可支持几十万以上)_poi导入数据量过大怎么办

poi导入数据量过大怎么办

使用xlsx-streamer读取 .xlsx格式文件,可将部分数据按次缓存到内存中,已经读取的数据进行GC处理,解决OOM问题。只支持 Excel2007版本,不支持Excel2003版本。

1、导入包:xlsx-streamer.jar

      注意(我也是使用了好几个版本):poi3.9版本,只支持搭配 xlsx-streamer-1.0.0.jar,其他版本不兼容;poi4.0可使用streamer2.0。

2、读取方式修改

Workbook wb = StreamingReader.builder()

                      .rowCacheSize(100)        // 缓存内存页数(默认10)

                      .bufferSize(1024)            // 缓存内存字节(默认1024)

                      .open(fis);                       // 文件(FileInputStream())

// getNumberOfSheets() 可获取所有Sheet页数

3、后面继续wb的循环读取操作(注意:只能用逐个遍历,for 或 iterator(),无法使用 getRow(i) 、getCell(i) 来按需获取数据,StreamingReader读取方式不支持)

        for (Row row : sheet) {
            // 遍历行


            for (Cell cell : row) {
                // 遍历列
            }
        }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/88911
推荐阅读
相关标签
  

闽ICP备14008679号