出现这个问题的90%的原因就是我们关于easyExcel的依赖包引入少了一部分。
com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.peekFirstNBytes(Ljava/io/InputStream;I)[B
at com.alibaba.excel.analysis.ExcelAnalyserImpl.<init>(ExcelAnalyserImpl.java:61)
at com.alibaba.excel.ExcelReader.<init>(ExcelReader.java:27)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.build(ExcelReaderBuilder.java:202)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:239)
at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:235)
at com.richstonedt.cmicsed.dyprdp.cs.mediumscreen.workbench.qualityService.util.ExcelUtil.readerExcel(ExcelUtil.java:43)
分析其原因,就是没有poi的peekFirstNBytes这个方法,那我们要引入这个poi依赖包。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
但引入之后可能会出现其他问题,这也是缺少其他依赖包导致的,大家之后就逐一击破吧。
最后解决所有问题之后,我的依赖包大致如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
<exclusions>
<exclusion>
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
写此篇只是记录开发中遇到的问题,留个印象。