参考:https://www.cnblogs.com/YJZUUID/p/9295241.html
使用excel模板导出,excel模板放在classpath下的(idea中resources目录),程序运行时,使用Resouce对象加载文件流,利用 inputStream 实例化XSSFWorkbook对象
Resource resource = new ClassPathResource("templates/"+template);
InputStream inputStream = resource.getInputStream();
Workbook workbook = new XSSFWorkbook(inputStream);
执行到
Workbook workbook = new XSSFWorkbook(inputStream);
报错java.util.zip.ZipException: invalid stored block lengths
参考资料,应该是编译代码时,把excel模板文件也重新编码了,导致excem模板文件格式损坏
解决方案,添加maven-resources-plugin插件,指定excel文件不编码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<!-- 需要过滤掉不需要编码的文件:过滤后缀为.xlsx或者.xls的所有文件,不对其进行统一编码-->
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>