用 Java 轻松读取 Word 文档内容

embedded/2025/2/8 6:16:14/

嘿,朋友们!在 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>

代码示例

 
java">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>

代码示例

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


http://www.ppmy.cn/embedded/160480.html

相关文章

Kafka 入门与实战

一、Kafka 基础 1.1 创建topic kafka-topics.bat --bootstrap-server localhost:9092 --topic test --create 1.2 查看消费者偏移量位置 kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group test 1.3 消息的生产与发送 #生产者 kafka-cons…

Redis基础篇(万丈高楼平地起):核心底层数据结构

大家好&#xff0c;我是小龙。近期有很多小伙伴私信我Redis怎么做持久化&#xff1f;集群方案怎么做&#xff1f;分布式锁怎么实现&#xff1f;可是我发现&#xff0c;每次简答完一个问题他还有其他类似问题&#xff0c;或则各个知识点不能串通形成体系&#xff0c;导致很多问题…

RocketMQ实战—6.生产优化及运维方案

大纲 1.RocketMQ集群如何进行权限机制的控制 2.如何对RocketMQ集群进行消息堆积的追踪 3.如何处理RocketMQ的百万消息积压问题 4.针对RocketMQ集群崩溃的金融级高可用方案 5.为RocketMQ增加消息限流功能保证其高可用 6.从Kafka迁移到RocketMQ的双写双读方案 1.RocketMQ集…

easyxor

easyxor 一、查壳 无壳&#xff0c;64位 二、IDA分析 1.main 2.查看key与r(shifee提取) 三、脚本 r [0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, …

04树 + 堆 + 优先队列 + 图(D1_树(D10_决策树))

目录 一、引言 二、算法原理 三、算法实现 四、知识小结 一、引言 决策树算法是一种常用的机器学习算法&#xff0c;可用于分类和回归问题。它基于特征之间的条件判断来构 建一棵树&#xff0c;树的每个节点代表一个特征&#xff0c;每个叶节点代表一个类别或回归值。决策…

处理器架构 :如何高效学习 - 从理论到实践

处理器架构&#xff08;Processor Architecture&#xff09;是计算机系统的核心&#xff0c;决定了指令的执行方式、数据的存储组织以及并行处理能力。对于新手而言&#xff0c;理解处理器架构不仅需要理论学习&#xff0c;还需要结合实例和实践操作来掌握其运行流程。本文将介…

本地部署deepseek-r1大模型

本地部署deepseek-r1大模型 一、安装ollama二、安装deepseek大模型 一、安装ollama ollama是本地安装大模型的工具&#xff0c;不知道的可以看我之前的这篇博客&#xff1a;开源框架Ollama: https://chuxia.blog.csdn.net/article/details/145472990 可以去ollama官网下载win…

Spring Boot 自动装配原理与优化实践

在 Java 开发领域&#xff0c;Spring Boot 以其 “约定优于配置” 的理念&#xff0c;极大地简化了 Spring 应用的开发和部署过程&#xff0c;成为了众多开发者的首选框架。它通过自动装配机制&#xff0c;让开发者能够快速搭建一个功能完备的应用&#xff0c;而无需进行繁琐的…