用Java轻松读取Word文档内容的常用方法

 更新时间:2025年03月19日 08:47:31   作者:五行星辰  
这篇文章主要介绍了用Java轻松读取Word文档内容的常用方法,对于doc格式使用Apache POI库中的HWPFDocument和WordExtractor类,对于docx格式使用XWPFDocument类,并通过遍历段落和文本运行对象来提取文本内容,需要的朋友可以参考下

前言

在 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 文档“交流”起来!

总结

到此这篇关于用Java轻松读取Word文档内容的常用方法的文章就介绍到这了,更多相关Java读取Word文档内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis查找返回Map,List集合类型的数据方式

    Mybatis查找返回Map,List集合类型的数据方式

    这篇文章主要介绍了Mybatis查找返回Map,List集合类型的数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java创建随机数的四种方式总结

    Java创建随机数的四种方式总结

    这篇文章主要介绍了java的四种随机数生成方式的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2022-07-07
  • 基于eclipse-temurin镜像部署spring boot应用的实现示例

    基于eclipse-temurin镜像部署spring boot应用的实现示例

    本文提供了基于eclipse-temurin镜像部署Spring Boot应用的详细实现示例,通过使用Docker镜像,可以轻松地创建和管理Spring Boot应用程序的容器化环境,感兴趣的可以了解一下
    2023-08-08
  • Java基于正则表达式获取指定HTML标签指定属性值的方法

    Java基于正则表达式获取指定HTML标签指定属性值的方法

    这篇文章主要介绍了Java基于正则表达式获取指定HTML标签指定属性值的方法,涉及java基于正则的HTML元素匹配相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

    Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

    这篇文章主要介绍了Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括创建工作簿、工作表、行和单元格,设置样式和字体,合并单元格,添加公式和下拉选择等功能,需要的朋友可以参考下
    2025-03-03
  • 深度源码解析Java 线程池的实现原理

    深度源码解析Java 线程池的实现原理

    如何高效的使用这些资源就是程序员在平时写代码时候的一个努力的方向。本文要说的线程池就是一种对 CPU 利用的优化手段。对Java 线程池的实现原理相关知识感兴趣的朋友一起看看吧
    2021-05-05
  • 关于Java创建线程的2种方式以及对比

    关于Java创建线程的2种方式以及对比

    这篇文章主要给大家介绍了关于Java创建线程的2种方式以及对比的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • 一文学习Java NIO的ByteBuffer工作原理

    一文学习Java NIO的ByteBuffer工作原理

    很多网友说JDK又在写Bug!下面通过通过本文学习下为何Java NIO的ByteBuffer这么垃圾,涉及到ByteBuf API 的优点及工作原理解析,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • java 中Map详解及实例代码

    java 中Map详解及实例代码

    这篇文章主要介绍了java 中Map详解及实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • Mybatis缓存机制详解与实例分析

    Mybatis缓存机制详解与实例分析

    Mybatis的缓存分为一级缓存和二级缓存,一级缓存是SqlSession级别的而二级缓存是mapper级别的,本文详细的介绍了Mybatis缓存机制与实例分析,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2023-11-11

最新评论