1

でレポートを作成してみます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++;
        }
    }
}
4

1 に答える 1