zoukankan      html  css  js  c++  java
  • [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 , 这个比官方文档全。
    • 读取的图片都没了,表格只保留了文字部分,格式都没有了。其余的格式(换行、回车等)均被保留。
  • 相关阅读:
    [转]tf.summary() 用法
    PASCAL VOC工具包解读
    [ERROR] 安装完Detectron后出现 cython_nms.so: undefined symbol: PyFPE_jbuf
    用Tensorflow做蝴蝶检测
    双系统,重装ubuntu后无法进入windows
    [Error]NodeDef mentions attr 'identical_element_shapes' not in Op<name=TensorArrayV3;
    [转]调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题
    js交互轮播图
    js取俩个数之间的随机数
    原生js实现触摸滚动轮播图
  • 原文地址:https://www.cnblogs.com/chengyuanqi/p/7372500.html
Copyright © 2011-2022 走看看