一、错误原因
org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: No valid entries or document
二、排查问题
- SpringBoot resources 下新增word,excel模板文件用于下载
- build编译后target文件下对应word,excel显示文件已损坏
- SpringBoot会对resources下文件进行压缩,导致word,excel格式异常
三、解决问题
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
通过使用maven-resources-plugin下的标签nonFilteredFileExtensions,让xlsx和word文件不再被压缩编译,避免office文件格式异常。