当前位置:首页 > Java

java 如何读取word

2026-03-23 16:47:53Java

读取 Word 文档的方法

使用 Apache POI 库

Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式文件,包括 Word 文档(.doc 和 .docx)。以下是使用 POI 读取 Word 文档的示例代码:

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

public class ReadWordDoc {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.docx");
             XWPFDocument document = new XWPFDocument(fis)) {

            for (XWPFParagraph paragraph : document.getParagraphs()) {
                System.out.println(paragraph.getText());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 Tika 库

Apache Tika 是一个内容分析工具包,可以自动检测和提取多种文件类型的内容,包括 Word 文档。以下是使用 Tika 读取 Word 文档的示例代码:

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

public class ReadWordWithTika {
    public static void main(String[] args) {
        Tika tika = new Tika();
        try {
            String content = tika.parseToString(new File("example.docx"));
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 docx4j 库

docx4j 是另一个专门用于处理 Word 文档的 Java 库,特别适合处理复杂的 .docx 文件。以下是使用 docx4j 读取 Word 文档的示例代码:

import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.exceptions.Docx4JException;

public class ReadWordWithDocx4j {
    public static void main(String[] args) {
        try {
            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File("example.docx"));
            String text = wordMLPackage.getMainDocumentPart().getContent().toString();
            System.out.println(text);
        } catch (Docx4JException e) {
            e.printStackTrace();
        }
    }
}

处理旧版 .doc 文件

如果需要处理旧版的 .doc 文件(Word 97-2003),可以使用 POI 的 HWPF 组件:

java 如何读取word

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

public class ReadOldWordDoc {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.doc");
             HWPFDocument document = new HWPFDocument(fis)) {

            WordExtractor extractor = new WordExtractor(document);
            System.out.println(extractor.getText());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 对于大型 Word 文档,考虑使用流式读取方法以避免内存问题
  • 处理复杂格式时,可能需要结合多个库的功能
  • 确保添加正确的依赖项到项目中(如 poi-ooxml、tika-core、docx4j 等)
  • 不同版本的 Word 文件可能需要不同的处理方法

标签: javaword
分享给朋友:

相关文章

如何配置java

如何配置java

安装Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK安装包。选择与系统架构匹配的版本(如Windows x64、macOS ARM等)。运行安装程…

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

如何配置java环境

如何配置java环境

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

如何运行java项目

如何运行java项目

运行Java项目的步骤 确保Java环境已安装 在运行Java项目前,需确认系统已安装Java Development Kit(JDK)。通过命令行输入java -version和javac -ver…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

java如何打印数组

java如何打印数组

打印数组的方法 在Java中,打印数组有多种方式,以下是几种常见的方法: 使用Arrays.toString()方法 这种方法适用于一维数组,可以快速将数组转换为字符串形式输出: int[] a…