当前位置:首页 > Java

java如何读取word文档

2026-03-04 07:26:17Java

读取Word文档的方法

Java可以通过多种库读取Word文档(.doc或.docx格式),以下是常用的方法:

使用Apache POI库(支持.docx和.doc)

Apache POI是处理Microsoft Office文档的流行库,支持Word的两种格式。

添加Maven依赖:

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

读取.docx文件示例代码:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.util.List;

public class ReadDocx {
    public static void main(String[] args) throws Exception {
        FileInputStream fis = new FileInputStream("document.docx");
        XWPFDocument document = new XWPFDocument(fis);
        List<XWPFParagraph> paragraphs = document.getParagraphs();

        for (XWPFParagraph para : paragraphs) {
            System.out.println(para.getText());
        }

        document.close();
        fis.close();
    }
}

读取.doc文件示例代码:

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import java.io.FileInputStream;

public class ReadDoc {
    public static void main(String[] args) throws Exception {
        FileInputStream fis = new FileInputStream("document.doc");
        HWPFDocument document = new HWPFDocument(fis);
        WordExtractor extractor = new WordExtractor(document);

        System.out.println(extractor.getText());

        document.close();
        fis.close();
    }
}

使用docx4j库(仅支持.docx)

docx4j是另一个专门处理.docx文件的库。

添加Maven依赖:

<dependency>
    <groupId>org.docx4j</groupId>
    <artifactId>docx4j</artifactId>
    <version>11.4.5</version>
</dependency>

示例代码:

import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import java.io.File;

public class ReadDocx4j {
    public static void main(String[] args) throws Exception {
        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(
            new File("document.docx"));
        MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
        System.out.println(documentPart.getContent().toString());
    }
}

使用Tika库(通用文档解析)

Apache Tika可以解析多种文档格式,包括Word。

添加Maven依赖:

<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>2.7.0</version>
</dependency>
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-parsers</artifactId>
    <version>2.7.0</version>
</dependency>

示例代码:

import org.apache.tika.Tika;
import java.io.File;

public class ReadWithTika {
    public static void main(String[] args) throws Exception {
        Tika tika = new Tika();
        String content = tika.parseToString(new File("document.docx"));
        System.out.println(content);
    }
}

处理注意事项

  • 对于大型Word文档,考虑使用流式处理避免内存问题
  • 不同库对复杂格式(表格、图片等)的支持程度不同
  • 处理旧版.doc文件时可能需要额外的字体配置
  • 关闭文件输入流和文档对象以防止资源泄漏

性能优化建议

  • 对于只需要文本内容的情况,使用轻量级的Tika可能更高效
  • 需要精细控制文档元素时,POI或docx4j更合适
  • 批量处理时可以考虑缓存解析器实例

java如何读取word文档

标签: 文档java
分享给朋友:

相关文章

java如何创建线程

java如何创建线程

创建线程的方法 在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法可以创建线程。…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是…

vue实现word文档实现预览

vue实现word文档实现预览

实现 Vue 中 Word 文档预览的方法 使用 mammoth.js 将 Word 转换为 HTML 安装依赖: npm install mammoth 在 Vue 组件中引入并转换 .doc…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

java如何输入数据

java如何输入数据

输入数据的方法 在Java中,输入数据可以通过多种方式实现,具体取决于输入来源(如控制台、文件、网络等)。以下是几种常见的方法: 使用Scanner类从控制台输入 Scanner类是Java中最常…