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 , 这个比官方文档全。
    • 读取的图片都没了,表格只保留了文字部分,格式都没有了。其余的格式(换行、回车等)均被保留。
  • 相关阅读:
    css 讲浮动,haslayout,BFC的文章
    css 给inline和inline-block元素设置margin和padding
    css inline元素和inline-block元素之间缝隙产生原因和解决办法
    js 匿名函数立即执行问题
    css 解决图片下小空隙问题
    css BFC布局及用处
    css 单行/多行文字垂直居中问题
    js柯里化
    js 回调函数理解与应用
    js 四种调用模式和this的关系总结
  • 原文地址:https://www.cnblogs.com/chengyuanqi/p/7372500.html
Copyright © 2011-2022 走看看