相关疑难解决方法(0)

如何使用 Apache POI 从 MS Word 文档的文本框中获取文本?

我想获取 MS Word 文档中文本框中写入的信息。我正在使用 Apache POI 来解析 word 文档。

目前,我正在迭代所有段落对象,但此段落列表不包含 TextBox 中的信息,因此我在输出中丢失了此信息。

例如

paragraph in plain text

**<some information in text box>**

one more paragraph in plain text
Run Code Online (Sandbox Code Playgroud)

我想提取什么:

<para>paragraph in plain text</para>

<text_box>some information in text box</text_box>

<para>one more paragraph in plain text</para>
Run Code Online (Sandbox Code Playgroud)

我目前得到的:

纯文本段落

纯文本中的另一段

有人知道如何使用 Apache POI 从文本框中提取信息吗?

document ms-word apache-poi

3
推荐指数
1
解决办法
9269
查看次数

替换Apache POI XWPF中的文本无法正常工作

我目前正在尝试处理上一篇名为" 替换Apache POI XWPF中的文本"的文章中提到的代码.

我已经尝试了以下它可以工作,但我不知道我是否遗漏了任何东西.当我运行代码时,文本不会被替换,而是添加到搜索结尾.例如,我创建了一个基本的word文档,并输入了文本"test".在下面的代码中,当我运行它时,我最终得到带有文本"testDOG"的新文档.

我不得不将原始代码从String text = r.getText(0)更改为String text = r.toString(),因为我在运行代码时不断收到NullError.

import java.io.*;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;


public class testPOI {

    public static void main(String[] args) throws Exception{

    String filepath = "F:\\MASTER_DOC.docx";
    String outpath = "F:\\Test.docx";

    XWPFDocument doc = new XWPFDocument(OPCPackage.open(filepath));
    for (XWPFParagraph p : doc.getParagraphs()){
        for (XWPFRun r : p.getRuns()){
            String text = r.toString();
            if(text.contains("test")) {
                text = text.replace("test", "DOG");
                r.setText(text);
            }
        }
    }
   doc.write(new FileOutputStream(outpath));
}
Run Code Online (Sandbox Code Playgroud)

编辑:感谢大家的帮助.我浏览了一下,在Apache POI中找到了 …

java apache ms-word apache-poi

3
推荐指数
2
解决办法
9595
查看次数

标签 统计

apache-poi ×2

ms-word ×2

apache ×1

document ×1

java ×1