小编Tim*_*Tim的帖子

Apache POI由于独立或xmlns而生成损坏的excel xlsx文件?

我有一个Web应用程序(tomcat 8.5.4,java 1.7.0_72),它以前使用Apache POI生成有效的xlsx excel文件.我正在努力转换应用程序以使用maven管理jar依赖项,现在生成的文件被excel视为已损坏(或无效).我根本没有更改生成文件的代码,并且包含的​​jar大部分都与一些版本更改相同,并删除了一些未使用但不在maven依赖关系树中的jar(删除了下面列出的jar).

有谁知道我可以做什么导致POI生成不同的文件或为什么excel认为这些更改使它无效?我搜索了很多POI和损坏的excel文件的错误,看起来POI中有几个错误,如果它可能破坏现有文件或破坏创建大文件,但在这种情况下似乎没有任何看起来应用.我在这里看到了几个问题,看起来它们可能相似,但最终没有应用.

差异

当我将之前和之后创建的xlsx文件更改为zip文件并提取它们然后将目录与windiff进行比较时,差异是(工作 - >已损坏).

[CONTENT_TYPES] .XML

 <?xml version="1.0" encoding="UTF-8" standalone="no"?> -> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> -> <Types>
Run Code Online (Sandbox Code Playgroud)

_rels.rels,_rels\workbook.xml.rels

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 -> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> -> <Relationships>
Run Code Online (Sandbox Code Playgroud)

docprops\core.xml

创造的时间不同

<?xml version="1.0" encoding="UTF-8" standalone="no"?> -> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)

XL\styles.xml

numFmtId低1

xl\worksheets\sheet1.xml,docprops\app.xml,xl\_ sharedstrings.xml,xl\workbook.xml

相同

罐子

我的公司正在使用本地神器存储库,而不是指向官方maven存储库,所以加载所有依赖项很有趣.我的假设是这是由我丢失的jar或使用错误的版本引起的,但是我实际上并没有产生任何错误,只是得到一个糟糕的文件.

我包括poi-3.1.11.jar,poi-ooxml-3.11.jar和poi-ooxml-schemas-3.11.jar.以前我们在tomcat/lib中使用了commons-codec 1.9,在WEB-INF/lib中使用了commons-codec 1.3.在maven我已经包含1.9,虽然我也尝试回到1.3并且文件仍然被破坏.

我尝试升级到3.1.14的所有poi版本,但这并没有解决它.我试着回到之前正在工作但没有解决它的确切的poi [-ooxml-schemas] -3.11-20141221罐子.我尝试将SXSSFWorkbook切换到正常的XSSFWorkbook,但没有解决它.

这是我转换为maven时删除的jar列表,​​其中任何一个都会对apache poi产生影响吗?

ecj-4.5.1
el-impl-2.2
itext-2.0.8
jimi-1.0
js
opencsv-1.8
standard (1.1.2)
Run Code Online (Sandbox Code Playgroud)

apache-poi xssf

2
推荐指数
1
解决办法
1910
查看次数

标签 统计

apache-poi ×1

xssf ×1