1

我正在尝试修改 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”。有人可以帮助我吗?提前致谢,梅格

4

1 回答 1

1

我对表格(使用 POI 3.10)有同样的问题:我无法修改它们,有时文件已损坏(我无法使用 LibreOffice 打开它)。

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

于 2014-04-24T14:18:18.160 回答