如何使用apache-poi 3.9修改pptx文件中表格的单元格值?

时间:2013-11-14 10:34:35

标签: java apache-poi

我正在尝试修改pptx文件中表格的单元格值。 保存文件时,不会应用修改。

以下是使用过的代码:

FileInputStream is = new FileInputStream("C:/Report_Template.pptx");
XMLSlideShow ppt = new XMLSlideShow(is);
is.close();

ppt.getPageSize();
for(XSLFSlide slide : ppt.getSlides()) {
    for(XSLFShape shape : slide){
        shape.getAnchor();
        if (shape instanceof XSLFTable){
            XSLFTable t = (XSLFTable) shape;
            List<XSLFTableRow> r = t.getRows();
            for (int i = 1; i < r.size(); i++) {
                String text = r.get(i).getCells().get(1).getText();
                if(text.contains("#ID")) {
                    r.get(i).getCells().get(1).setText("20131028152343");
                }
            }
        }
    }
}
FileOutputStream out = new FileOutputStream("C:/Report.pptx");
ppt.write(out);
out.close();

文件C:/Report.pptx不包含字符串“20131028152343”,而是“#ID”。 有人能帮助我吗? 提前致谢, 梅格

1 个答案:

答案 0 :(得分:1)

我遇到了与表相同的问题(使用POI 3.10):我无法修改它们,有时,文件已损坏(我无法使用LibreOffice打开它)。

我刚刚在我的构建路径中用poi-ooxml-schemas-*.jar替换了jar ooxml-schemas-1.1.jar(你可以在Maven Central上找到它),它现在可以正常工作。