我想删除docx中的特定行,如果它有一个使用poi xwpf的特定单词

时间:2014-10-06 05:13:07

标签: 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);
        }
    }

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我想替换doc文件中的文本。 这是一个很好的例子: 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%