你知道是否有办法在段落填充文档(XWPFDocument)中插入一个段落(XWPFParagraph)?
有一种方法可以将文档中已经存在的段落“更改”为另一个段落(XWPFDocument.setParagraph()),但我不知道如何将新段落插入到文档中的特定位置,而不是在结尾处XWPFDocument.createParagraph()。
你知道是否有办法在段落填充文档(XWPFDocument)中插入一个段落(XWPFParagraph)?
有一种方法可以将文档中已经存在的段落“更改”为另一个段落(XWPFDocument.setParagraph()),但我不知道如何将新段落插入到文档中的特定位置,而不是在结尾处XWPFDocument.createParagraph()。
我找到了解决方案。XWPFDocument 有一个丑陋的方法 insertNewParagraph(org.apache.xmlbeans.XmlCursor cursor)。如您所见,此方法从 xmlbeans 库中传递了一个 XmlCursor。然后我们可以这样做:
XmlCursor cursor = par.getCTP().newCursor();
XWPFParagraph new_par = doc.insertNewParagraph(cursor);
new_par.createRun().setText("Stupid text");
Par 是 XWPFDocument 文档中的 XWPFaragraph。插入的新段落(此代码段中的 new_par)将插入到 XmlCursor 指向的 XmlObject 之前。
希望这对某人有所帮助。
我也花了几个小时来解决这个问题。我遇到了与上面评论中提到的相同的问题。对我有用的是:
在找到正确的段落进行插入后document.getParagraphsIterator()
,我不得不使用这段代码
XmlCursor cur = para.getCTP().newCursor();
cur.toNextSibling();
能够做到doc.insertNewParagraph(cur)
。
据我了解,我的下一个错误是尝试在光标位置插入几段。为了完成这项工作,我必须cursor.toNextToken();
在插入后添加。