No valid entries or contents found, this is not a valid OOXML (Office Open XML) file

时间:2025-03-21 08:34:17

这里是记录一下使用poi过程中出现的一个问题

文章目录

  • 一、问题复现
  • 二、解决思路
    • 1.是否文件加密
    • 2.编译后的模板文件内容是乱码
  • 总结


一、问题复现

新建一个导出模板之后,放到项目,然后获取模板文件进行处理,结果一直获取不到模板文件。

二、解决思路

1.是否文件加密

因为公司电脑是有加密软件的,一些文档编辑之后会加密。在target目录下找到该模板文件,打开文件,提示文件已被损坏。然后申请解密,解密之后放到项目里,重新编译,这时在target目录下打开的模板文件可以打开,但是文件内容是乱码。

2.编译后的模板文件内容是乱码

重新编译项目,在target目录下找到该模板文件,文件内容是乱码。这个是maven编译项目时因为编码不同导致的,需要在里设置maven编译时使用的编码方式,以及不对特定文件进行编码。代码如下。

<configuration>
    <nonFilteredFileExtensions>
        <nonFilteredFileExtension>doc</nonFilteredFileExtension>
        <nonFilteredFileExtension>docx</nonFilteredFileExtension>
    </nonFilteredFileExtensions>
</configuration>

完整位置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <encoding>UTF-8</encoding>
                <nonFilteredFileExtensions>
                    <!--过滤掉不需要编码的文件:过滤后缀为 .doc、.xlsx。。。 的所有文件,不对其进行统一编码-->
                    <nonFilteredFileExtension>doc</nonFilteredFileExtension>
                    <nonFilteredFileExtension>docx</nonFilteredFileExtension>
                    <nonFilteredFileExtension>txt</nonFilteredFileExtension>
                    <nonFilteredFileExtension>ftl</nonFilteredFileExtension>
                    <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                    <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                </nonFilteredFileExtensions>
            </configuration>
        </plugin>
    </plugins>
</build>

总结

重新编辑项目,打开target目录下的模板文件,可以正常打开并显示文档内容。运行项目,报错解决。