在XWPFDocument的任何位置插入XWPFParagraph

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在XWPFDocument的任何位置插入XWPFParagraph相关的知识,希望对你有一定的参考价值。

你知道是否有办法在段落满文件(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 doc中的XWPFParagraph。插入的新段落(此片段中的new_par)将在Xm​​lCursor指向的XmlObject之前插入。

希望这能有所帮助。

另一答案

我也花了几个小时解决这个问题。我有与上面评论中提到的相同的问题。对我有用的是:

找到正确的段落在document.getParagraphsIterator()中插入后,我不得不使用此代码

XmlCursor cur = para.getCTP().newCursor();
cur.toNextSibling();

能够做doc.insertNewParagraph(cur)

据我所知,我的下一个错误是尝试在光标位置插入几个段落。为了完成这项工作,我必须在插入后添加cursor.toNextToken();

另一答案

您可以使用

xwpfDoc.setParagraph(XWPFParagraph paragraph, int pos)

在特定位置插入一个段落

有关详细信息,请参阅link

以上是关于在XWPFDocument的任何位置插入XWPFParagraph的主要内容,如果未能解决你的问题,请参考以下文章

NPOI操作word文档

#yyds干货盘点# NPOI在Word中的简单用法汇总

在链表C++中的某个位置插入节点

顺序容器2

用Javascript移动光标位置?

如何有效地将元素插入数组的任意位置?