我使用POI-3.10-FINAL
时遇到问题,编辑PPTX并不能完全发挥作用。我注意到我已成功添加新幻灯片,但对形状的修改(在本例中为表格)并未反映在输出的PPTX文件中。
我能够通过从poi-ooxml-schemas-*.jar
切换到ooxml-schemas-1.1.jar
来修复它,但生成的PPTX文件似乎已损坏:PowerPoint 2007无法打开它但PowerPoint 2010首先修复它,然后正确打开它。
在调查此问题时,我注意到" docProps / app.xml "没有正确更新(我假设PPTX中的其他文件也没有更新)。
有什么想法吗?
答案 0 :(得分:2)
我已经能够使用Microsoft的OpenXml SDK正确排除故障并修复我的POI问题(请参阅OpenXml SDK)。 SDK可帮助您扫描PPTX文件(或任何其他OpenXml文档)并编译它找到的所有错误的列表。
在我的情况下,我将我的一个表格单元格的文本值设置为null。反过来,POI在最顶层的幻灯片标记处生成 xmlns:xsi =" http://www.w3.org/2001/XMLSchema-instance" 声明并使用 xsi:nil =" true" 在单元格的标签中,PowerPoint绝对不喜欢。
我遇到的另一个问题是我正在修改和在我的表格中创建新的行和列。为了方便我的代码,每当我对单元格做任何事情时,我都确保将边框信息设置为黑色,宽度为1,填充颜色为白色。由于一些奇怪的原因,似乎POI没有替换边界信息,但附加它使PPTX有2个冲突的值而不是1(我必须进一步研究这个但是在尝试设置它们之前检查边界并填充信息解决了我的问题)。
一旦我弄明白这些问题就很容易解决。