2

我一直在使用POI-3.10-FINAL编辑 PPTX 无法完全工作的地方遇到问题。我注意到我能够成功添加新幻灯片,但对形状(在本例中为表格)的修改不会反映在输出的 PPTX 文件中。

我可以通过切换来修复它,poi-ooxml-schemas-*.jarooxml-schemas-1.1.jar生成的 PPTX 文件似乎已损坏:PowerPoint 2007 无法打开它,但 PowerPoint 2010 首先修复它,然后正确打开它。

在调查该问题时,我注意到“ docProps/app.xml ”没有正确更新(我假设 PPTX 中的其他文件也没有更新)。

有任何想法吗?

4

1 回答 1

2

我已经能够使用 Microsoft 的 OpenXml SDK(请参阅OpenXml SDK)正确地排除和修复我的 POI 问题。SDK 帮助您扫描 PPTX 文件(或任何其他 OpenXml 文档)并编译它发现的所有错误的列表。

就我而言,我将表格单元格的文本值之一设置为空。反过来,POI在最顶部的幻灯片标记处生成xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"声明,并在单元格的标记中使用xsi:nil="true",这绝对是 PowerPoint不喜欢。

我遇到的另一个问题是我正在修改创建表中的新行和列。为了使我的代码更容易,每当我对单元格进行任何操作时,我都会确保将边框信息设置为宽度为 1 的黑色,并将填充颜色设置为白色。出于某种奇怪的原因,似乎 POI 并没有替换边界信息,而是附加了它,这使得 PPTX 有 2 个冲突的值而不是 1(我必须进一步调查这一点,但在尝试设置它们之前检查边界和填充信息)解决了我的问题)。

一旦我弄清楚了这些问题,就很容易解决。

于 2014-06-30T14:02:41.407 回答