我正在使用Apache POI,并尝试使用Powerpoint报告自动执行某些任务。更准确地说,我想从代码中更新.pptx演示文稿中的数据,包括表格。
我已设法获取XSLFTable对象(感谢此页面:How to modify the cell value of a table in an pptx file with apache-poi 3.9?),但现在我正在尝试更新表格结构。
不幸的是,我不知道如何在该表中创建或删除行(或列)。方法getRows
返回一个列表,但似乎无法修改。有addRow
方法,但我没有找到删除/删除行的内容。
你知道我怎么做到这一点吗?
非常感谢,最诚挚的问候!
答案 0 :(得分: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.