1

我正在使用 Apache POI,并且正在尝试使用 Powerpoint 报告自动执行一些任务。更准确地说,我想从代码更新 .pptx 演示文稿中的数据,包括表格。

我设法获得了 XSLFTable 对象(感谢此页面:如何使用 apache-poi 3.9 修改 pptx 文件中表的单元格值?),但现在我正在尝试更新表结构。

不幸的是,我不知道如何在该表中创建或删除行(或列)。该方法getRows返回一个列表,但它似乎无法修改。有一种addRow方法,但我没有找到任何删除/删除行的方法。

你知道我怎么能做到这一点吗?

非常感谢,最好的问候!

4

1 回答 1

4

获取 XSLFTable

XSLFTable t = null;
for (XSLFShape shape : slide) {
    if (shape instanceof XSLFTable) {
        t = (XSLFTable) shape;
        r = t.getRows();
   }
}

添加行和单元格

XSLFTableRow titleRow = tbl.addRow();
titleRow.setHeight(50);
XSLFTableCell titleCell1 = titleRow.addCell();
XSLFTextParagraph p1 = titleCell1.addNewTextParagraph();
p1.setTextAlign(TextAlign.CENTER);
XSLFTextRun r1 = p1.addNewTextRun();
r1.setText("Column title");
r1.setBold(true);
r1.setFontColor(new Color(0, 104, 145));
titleCell1.setFillColor(new Color(190, 230, 245));
r1.setFontSize(25.0);
titleCell1.setVerticalAlignment(VerticalAlignment.MIDDLE);

删除行

t.getCTTable().getTrList().remove(t.getNumberOfRows()-1); //Remove the last row from table.
于 2016-01-20T14:48:00.547 回答