我正在使用ApachePOI处理.docx文件。
我有一个1行1列的.docx表。
XWPFTable table = document.getTables().get(0);
XWPFTableRow copiedRow = table.getRow(0);
table.addRow(copiedRow);
上面的代码成功地复制了行,因此表现在将有2行。
但是,我还想对复制的行进行变异。
XWPFTable table = document.getTables().get(0);
XWPFTableRow copiedRow = table.getRow(0);
copiedRow.getTableCells().get(0).setText("SOME MODIFICATION HERE"); // <- setting some data
table.addRow(copiedRow);
问题是。。。修改影响了两行。原来的第一个和第二个刚刚被添加的都会受到影响。
我还尝试显式构造新行,如下所示:
copiedRow.getTableCells().get(0).setText("SOME MODIFICATION");
XWPFTableRow newRow = new XWPFTableRow(copiedRow.getCtRow(), table);
table.addRow(newRow);
…但是结果仍然是一样的:两行都被修改,而不仅仅是第二行。
我试着尽可能少举这个例子。谢谢你的帮助!
1条答案
按热度按时间nfg76nw01#
您仍在引用相同的基础数据。
CTRow
有一个copy
方法。所以用它来创建一个新的XWPFTableRow
: