问题描述
在poi和poi-ooxml版本为4.1.2时,使用xlsx-streamer处理大数据量的excel文件导入OOM问题,现在由于poi漏洞修复,需要升级到5.2.1,xlsx-streamer就不兼容高版本的poi了,poi-ooxml5.1.2提示XSSFReader.getSharedStringsTable方法不存在;
xlsx-streamer2.2.0是目前官网支持的最高版本,以下的导入的依赖和使用方法
Workbook workbook = StreamingReader.builder().rowCacheSize(100).bufferSize(4096).open(file.getInputStream());
<dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version>
<dependency>
问题解决方案
使用 excel-streaming-reader包替换xlsx-streamer,兼容poi5.x版本
<dependency><groupId>com.github.pjfanning</groupId><artifactId>excel-streaming-reader</artifactId><version>4.2.1</version></dependency>
只需修改StreamingReader类引用如下即可:
import com.github.pjfanning.xlsx.StreamingReader;