我尝试使用创建报告org.apache.poi
。我已经创建了带有表格的模板,我想在其中复制行并插入信息。一个单元格包含两个段落和它们之间的小表格。
所以,我有时想删除表格,但XWPFTableCell
没有所需的方法。只有removeParagraph(int p1)
.
如何删除单元格内的表格?
这是细胞克隆方法的代码
public static void cloneCell(XWPFTableCell clone, XWPFTableCell source) {
CTTcPr cttcPr = clone.getCTTc().isSetTcPr() ? clone.getCTTc().getTcPr() : clone.getCTTc().addNewTcPr();
cttcPr.set(source.getCTTc().getTcPr());
int indexParag = 0, indexTable = 0;
for (IBodyElement iBodyElement : source.getBodyElements()) {
BodyElementType beType = iBodyElement.getElementType();
if (beType == BodyElementType.PARAGRAPH) {
XWPFParagraph sourceParag = (XWPFParagraph)iBodyElement;
XWPFParagraph cloneParag = indexParag < clone.getParagraphs().size() ? clone.getParagraphs().get(indexParag) : clone.addParagraph();
cloneParagraph(cloneParag, sourceParag);
indexParag++;
} else if (beType == BodyElementType.TABLE) {
XWPFTable sourceTable = (XWPFTable)iBodyElement;
XWPFTable cloneTable = indexTable < clone.getTables().size() ? clone.getTables().get(indexTable) : clone.insertNewTbl(sourceTable.getCTTbl().newCursor());
if (cloneTable == null)
cloneTable = new XWPFTable(clone.getCTTc().addNewTbl(), clone);
cloneTable(cloneTable, sourceTable);
indexTable++;
}
}
}