在桌子后添加文字的最佳或简短方法是什么?不在表格中但在之后。 该表位于docx文件中。
所以,例如:
我想在Table和textC之间添加一些文本。 结果:
我尝试了以下代码,但是在表之前没有插入代码。
XmlCursor cursor = table.getCTTbl().newCursor();
XWPFParagraph newParagraph = doc.insertNewParagraph(cursor);
XWPFRun run = newParagraph.createRun();
run.setText("inserted new text");
答案 0 :(得分:2)
使用XmlCursor的方法是正确的。阅读有关此XmlCursor
及其链接文档中方法的更多信息。
所以我们需要跳到CTTbl
的末尾,然后找到下一个元素的开始标记。
import java.io.FileOutputStream;
import java.io.FileInputStream;
import org.apache.poi.xwpf.usermodel.*;
public class WordTextAfterTable {
public static void main(String[] args) throws Exception {
XWPFDocument document = new XWPFDocument(new FileInputStream("WordTextAfterTable.docx"));
XWPFTable table = document.getTableArray(0);
org.apache.xmlbeans.XmlCursor cursor = table.getCTTbl().newCursor();
cursor.toEndToken(); //now we are at end of the CTTbl
//there always must be a next start token. Either a p or at least sectPr.
while(cursor.toNextToken() != org.apache.xmlbeans.XmlCursor.TokenType.START);
XWPFParagraph newParagraph = document.insertNewParagraph(cursor);
XWPFRun run = newParagraph.createRun();
run.setText("inserted new text");
document.write(new FileOutputStream("WordTextAfterTableNew.docx"));
document.close();
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
这对我有用:
tablasolicitantecargo = tablafiladoss.getTable();
org.apache.xmlbeans.XmlCursor cursor = tablasolicitantecargo.getCTTbl().newCursor();
cursor.toEndToken();
while(cursor.toNextToken() != org.apache.xmlbeans.XmlCursor.TokenType.START);
XWPFParagraph newParagraph = requisicionesaprobadas.insertNewParagraph(cursor);
@SuppressWarnings("unused")
XWPFRun run = newParagraph.createRun();