でレポートを作成してみますorg.apache.poi
。行をコピーして情報を挿入したいテーブルを含むテンプレートを作成しました。1 つのセルには 2 つの段落が含まれ、その間に小さな表があります。
だから、時々テーブルを削除したいXWPFTableCell
のですが、必要な方法がありません。のみremoveParagraph(int p1)
。
セル内のテーブルを削除するには?
cell の clone メソッドのコードです
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++;
}
}
}