报错信息:java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
说明:在做excel上传以及导出,进行接口工具测试的时候,发现后台抛异常java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
检查了一下我的poi相关依赖的版本,用的是3.15,换成3.17然后build项目,在验证接口就可以了。
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.1.3</version>
</dependency>
3.15,换成3.17后Apache POI用于Java中的excel读写操作Row.CREATE_NULL_AS_BLANK方法将不存在,将其修改为Row.MissingCellPolicy.CREATE_NULL_AS_BLANK即可。
CREATE_NULL_AS_BLANK-如果返回的单元格不存在,则返回" null",而不是创建一个新的单元格,而不是返回null。这可以帮助方便地避免NullPointerExceptions。
RETURN_BLANK_AS_NULL-即使该单元格存在,但其单元格类型为" blank ",仍返回null。这样可以忽略确实存在的空白单元格。
RETURN_NULL_AND_BLANK-不要修改现有结构;对于不存在的单元格,返回null;如果存在空白单元格,但其单元格类型为空,则返回空白单元格。这是getCell重载的行为,它不会占用MissingCellPolicy。