替换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