Java读取word文件内容

1,185 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 12 天,点击查看活动详情

前言

今天遇到一个读取word模板内容的需求,在网上找了很多种方案,有的代码比较复杂,有的读出来中文乱码,个人觉得使用Apache下面的poi包去实现起来比较简单,并且不会出现中文乱码的情况。

这种方法还是比较实用的,代码量少并且通俗易懂,所以想着分享给大家

注意:以下只是一种实现办法!并不代码全部,还有更多的实现方式等着大家发掘!!!

XWPFDocument

这次要用到一个新的类:XWPFDocument,它代表一个docx文档。是apache基金会提供的用户导出Word文档的工具类。

引入依赖

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

准备一个word文档

提前准备一个word文档,随便写点内容

image.png

编写demo

然后简单编写一个demo,测试下读取文件里面的内容:

package com.test;

import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.File;
import java.io.FileInputStream;



public class FileTest {
    public static void main(String[] args){
        File file = new File("C:\\Users\\PC\\Desktop\\test.docx");
        FileInputStream fis = null;
        XWPFDocument document = null;
        XWPFWordExtractor extractor = null;
        try {
            fis = new FileInputStream(file);
            document = new XWPFDocument(fis);
            extractor = new XWPFWordExtractor(document);
            System.out.println(extractor.getText());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


运行查看结果

通过控制台可以看到,可以正常的读取到里面的内容

image.png

扩展

上面的用的是是docx类型的,对于doc类型也是支持的:

image.png

image.png

总结

关于这个包的使用,会再次更新,想要实现通过Java读取word文件内容,也不是这一种方式,个人觉得简单好用,再次推荐给大家