[Java] Java读取Word文档

前言

最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法。

Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括Excel和PowerPoint。我们就使用POI来做。

步骤

下载

https://poi.apache.org/download.html 下载Binary Distribution,并解压

导入

在Intellij IDEA中,点击File--Project Structure--Library,然后添加里边所有的jar包

使用

核心在于org.apache.poi.hwpf.extractor.WordExtractor和org.apache.poi.hwpf.HWPFDocument这两个。

贴上代码

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

public class Demo {
    public void readWordFile(String path) {
        File file = null;
        WordExtractor extractor = null;
        file = new File(path);
        try {
            HWPFDocument doc = new HWPFDocument(new FileInputStream((file.getAbsolutePath())));
            extractor = new WordExtractor(doc);
            String fileData = extractor.getText();//此处还有很多别的方法可以使用
            System.out.println(fileData);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

public class RunDemo {
    public static void main(String[] dd){
        Demo d=new Demo();
        String path="/home/chyq/Desktop/我的文档.doc";
        d.readWordFile(path);
    }
}

 

 

一些需要说明的

  • 如果是docx,将HWPF改成XWPF,基本是一样的
  • extractor对象的几个get方法说明:
    • getText() :返回String,全文内容
    • getMainTextboxText() 返回String[],读取的是多个文本框中的内容

    • getParagraphText() 返回String[],读取的是多个自然段的内容

    • 还有读取页眉页脚等方法,更多详细API可以参考:http://book2s.com/java/src/package/org/apache/poi/hwpf/extractor/wordextractor.html#1d7167f4e597fb0328033cb4c51b178b , 这个比官方文档全。
  • 读取的图片都没了,表格只保留了文字部分,格式都没有了。其余的格式(换行、回车等)均被保留。

 

转载于:https://www.cnblogs.com/chengyuanqi/p/7372500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值