当前位置:首页 > 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>

示例代码:

java如何读取word文档

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
分享给朋友:

相关文章

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

如何用java

如何用java

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorl…

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名.方法名…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…