• [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 , 这个比官方文档全。
    • 读取的图片都没了,表格只保留了文字部分,格式都没有了。其余的格式(换行、回车等)均被保留。
  • 相关阅读:
    UVA 1557
    基于角色的权限设计(二)
    用DirectShow实现视频採集-流程构建
    oracle中schema指的是什么?
    GCC 命令行具体解释
    希尔排序
    单点登录SSO的实现原理
    济南最新公交线路一览(BRT)
    编写你自己的单点登录(SSO)服务
    C和指针 (pointers on C)——第五章:操作符和表达式
  • 原文地址:https://www.cnblogs.com/chengyuanqi/p/7372500.html
Copyright © 2020-2023  润新知