用 Java 轻松读取 Word 文档内容

嘿,朋友们!在 Java 开发里,有时候咱得读取 Word 文档里的内容,这在处理合同、报告等文件时特别有用。咱可以根据 Word 文档的格式,用不同的库来实现读取功能。下面就详细说说 .doc.docx 这两种常见格式文档的读取方法。

1. 读取 .doc 格式的 Word 文档

引入依赖

如果用 Maven 管理项目,在 pom.xml 里添加 Apache POI 的依赖:

 
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>5.2.3</version>
</dependency>

代码示例

 
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

import java.io.FileInputStream;
import java.io.IOException;

public class ReadDocFile {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.doc")) {
            // 创建 HWPFDocument 对象来表示 .doc 文档
            HWPFDocument document = new HWPFDocument(fis);
            // 创建 WordExtractor 对象用于提取文档内容
            WordExtractor extractor = new WordExtractor(document);
            // 获取文档的文本内容
            String content = extractor.getText();
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("读取 .doc 文件失败:" + e.getMessage());
        }
    }
}

代码解释

  • FileInputStream fis = new FileInputStream("example.doc"):创建一个文件输入流,用来读取 example.doc 文件。

  • HWPFDocument document = new HWPFDocument(fis):用 HWPFDocument 类创建一个文档对象,它能处理 .doc 格式的文档。

  • WordExtractor extractor = new WordExtractor(document):创建 WordExtractor 对象,它可以从文档对象里提取文本内容。

  • String content = extractor.getText():调用 getText() 方法获取文档的全部文本内容,然后打印出来。

2. 读取 .docx 格式的 Word 文档

引入依赖

同样在 pom.xml 里添加 Apache POI 的依赖:

 
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>

代码示例

 
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileInputStream;
import java.io.IOException;

public class ReadDocxFile {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.docx")) {
            // 创建 XWPFDocument 对象来表示 .docx 文档
            XWPFDocument document = new XWPFDocument(fis);
            StringBuilder content = new StringBuilder();
            // 遍历文档中的每个段落
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                // 遍历段落中的每个文本运行对象
                for (XWPFRun run : paragraph.getRuns()) {
                    content.append(run.getText(0));
                }
                content.append("\n");
            }
            System.out.println(content.toString());
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("读取 .docx 文件失败:" + e.getMessage());
        }
    }
}

代码解释

  • FileInputStream fis = new FileInputStream("example.docx"):创建文件输入流读取 example.docx 文件。

  • XWPFDocument document = new XWPFDocument(fis):用 XWPFDocument 类创建文档对象,它专门处理 .docx 格式的文档。

  • 通过两层循环,外层遍历文档里的每个段落,内层遍历段落里的每个文本运行对象,把文本内容添加到 StringBuilder 里,最后打印出来。

嘿,朋友们!有了上面的方法,咱就能用 Java 轻松读取不同格式的 Word 文档内容啦。赶紧动手试试,让你的程序也能和 Word 文档“交流”起来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五行星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值