gpt4 book ai didi

java - 替换 Apache POI XWPF 中的文本

转载 作者:IT老高 更新时间:2023-10-28 20:48:55 25 4
gpt4 key购买 nike

我刚刚发现 Apache POI 库对于使用 Java 编辑 Word 文件非常有用。具体来说,我想使用 Apache POI 的 XWPF 类编辑 DOCX 文件。我发现没有合适的方法/文档可以做到这一点。有人可以分步解释如何替换 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"));

关于java - 替换 Apache POI XWPF 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com