项目场景:
根据模板文件导出excel
问题描述
用inputStream流读取的可以读取出来,但是在WorkbookFactory.creater(流)的时候,就会出现此异常
出错代码如下:
ClassPathResource resource = new ClassPathResource("excel/寄发律师函给客户需要的信息报表字段.xlsx");
InputStream fis = resource.getInputStream();
//ERR: ZIP entry size is too large
Workbook book = WorkbookFactory.create(fis);
原因分析:
一开始我也以为仅仅是要在pom文件中新增excludes规则即可,但是事实并不是如此。
当我双击resources目录下的文件时,是可以打开的,代表目录文件并没有被损坏?可是还是要经过java编译啊!所以我后面才发现,双击target下文件的时候才是真正检查自己文件是否被损坏的根本!
解决方案:
问题出来了那就解决问题
同样是在pom文件内进行操作,但不是进行excludes排除,而是添加plugin打包时的过滤操作
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<!-- 过滤后缀不需要转码的文件后缀名.xlsx -->
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>