替换Apache POI XWPF中的文本

我刚刚发现Apache POI库对于使用Java编辑Word文件非常有用。具体来说,我想使用Apache POI的XWPF类编辑

文件。我发现没有适当的方法/文档可以遵循此操作。有人可以分步说明如何替换DOCX文件中的某些文本。

**文字可能在一行/段落或表格的行/列中

提前致谢 :)

回答:

您需要的方法是XWPFRun.setText(String)。只需遍历文件,直到找到感兴趣的XWPFRun,确定您想要的新文本,然后替换它即可。(运行是具有相同格式的一系列文本)

您应该能够执行以下操作:

XWPFDocument doc = new XWPFDocument(OPCPackage.open("input.docx"));

for (XWPFParagraph p : doc.getParagraphs()) {

List<XWPFRun> runs = p.getRuns();

if (runs != null) {

for (XWPFRun r : runs) {

String text = r.getText(0);

if (text != null && text.contains("needle")) {

text = text.replace("needle", "haystack");

r.setText(text, 0);

}

}

}

}

for (XWPFTable tbl : doc.getTables()) {

for (XWPFTableRow row : tbl.getRows()) {

for (XWPFTableCell cell : row.getTableCells()) {

for (XWPFParagraph p : cell.getParagraphs()) {

for (XWPFRun r : p.getRuns()) {

String text = r.getText(0);

if (text != null && text.contains("needle")) {

text = text.replace("needle", "haystack");

r.setText(text,0);

}

}

}

}

}

}

doc.write(new FileOutputStream("output.docx"));

以上是 替换Apache POI XWPF中的文本 的全部内容, 来源链接: utcz.com/qa/427375.html

回到顶部