Poi读取Excle报错 java.util.zip.ZipException: invalid stored block lengths

僤鯓⒐⒋嵵緔 提交于 2020-01-11 04:59:11

参考: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>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!