java - 我想使用 poi xwpf 删除 docx 中的特定行(如果它有特定单词)

标签 java apache-poi xwpf

我想删除 docx 中的特定行(如果它包含特定单词,例如“killer”)。如何使用 poi xwpf 编写程序?如果我用空数据替换它,该行仍然存在。

实际上,我可以在 docx 文件中找到特定文本,以便我可以使用以下代码进行匹配并决定是否删除该特定行:

for (XWPFParagraph xwpfParagraph : xwpfParagraphs) {
        List<XWPFRun> xwpfRuns = xwpfParagraph.getRuns();
        for (XWPFRun xwpfRun : xwpfRuns) {
            String xwpfRunText = xwpfRun.getText(xwpfRun
                    .getTextPosition());
            System.out.println(xwpfRunText);
            for (Map.Entry<String, String> entry : replcementMap
                    .entrySet()) {
                if (xwpfRunText != null
                        && xwpfRunText.contains(entry.getKey())) {
                    xwpfRunText = xwpfRunText.replaceAll(
                            entry.getKey() , entry.getValue());
                }
            }
            xwpfRun.setText(xwpfRunText, 0);
        }
    }

最佳答案

我也遇到了同样的问题。我想替换文档文件中的文本。 这是一个很好的例子: http://moodygeeky.wordpress.com/ 只需导入 2 个类即可:

There are 2 classes:

ZipUtility – 处理文件的压缩和解压缩
SubstituteText – 用于替换 .docx 文件中的文本

并将这些字符串替换为您的偏好:

// Names of placeholders, starting and ending with % (to be updated
    // accordingly)
    String placeholder1 = "%name%";
    String placeholder2 = "%text%";

    // Values to replace placeholders (to be updated accordingly)
    String var1 = escapeHTML("newName"); // %name%
    String var2 = escapeHTML("newText"); // %text%

关于java - 我想使用 poi xwpf 删除 docx 中的特定行(如果它有特定单词),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26210338/

相关文章:

java - ResourceFilter 的依赖注入(inject)不起作用?

java - 如何更改BottomSheetDialogFragment的BottomSheetBehavior?

java - 使用 APACHE POI 打印同一行不同列中的值

java - 不推荐使用 XSSFCell 类型的 setCellType(int) 方法

apache-poi - 如何更改 Apache POI SXSSFWorkbook 默认临时文件名

java - Apache POI - 在 .doc 文件中的关键字之间检索文本内容并有条件地呈现它

java - android 日期比较

java - Android 使用共享首选项来检查首次运行

java - 如何使用 POI XWPF 更改所选文字颜色

java - 如何在 Apache POI XWPF 中为整个 Word 文档设置字体系列