问题描述
最近在文件上传的功能,需要用到模板下载功能,excel模板放在了src/main/resources下,下载文件后发现损坏了
问题原因
刚开始以为是代码问题,后面排查发现是在打包项目后,target下打开excel,文件已经损坏了。是因为项目在编译或者打包过程中,会对excel进行编译,这样经过文件filter过滤一遍之后,excel文件就损坏了。
解决方案
修改过滤配置
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.xlsx</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xlsx</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
其中第一段配置声明:在src/main/resources目录下,后缀是.xlsx的文件不是资源文件,其它的资源文件需要被过滤。而第二段配置声明:同样在src/main/resources目录下,后缀是.xlsx的文件是资源文件,但是不会被过滤。
配置完成后,如果重新编辑(打包)没有效果,需要maven claen 或者删除target文件重新编译一遍就可以啦。
参考:https://blog.csdn.net/master_yao/article/details/102494637