2021年12月2日 作者 zeroheart

excel 2007 的处理

<dependency>
    <groupId>com.monitorjbl</groupId>
    <artifactId>xlsx-streamer</artifactId>
    <version>2.1.0</version>
</dependency>

使用这个框架,可以每次只读取几行数据到缓存中,减小内存压力
workbook = StreamingReader.builder()
.rowCacheSize(100)  //缓存到内存中的行数,默认是10
.bufferSize(4096)  //读取资源时,缓存到内存的字节大小,默认是1024
.open(is);  //打开资源,必须,可以是InputStream或者是File,注意:只能打开XLSX格式

//使用此方法后,遍历excel只能使用以下方式,不能通过脚标获取
for (Row r : sheetAt) {

}

并且,如果第一次循环中途退出了,第二次使用循环的时候,会从上次循环的地方继续执行,与普通的for循环不同

2003的xls,最大行为65535,2007,xlxs可以为104w左右