java使用poi读取doc和docx文件的实现示例

 更新时间:2020年03月25日 09:19:46   作者:涂宗勋  
这篇文章主要介绍了java使用poi读取doc和docx文件的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这几天在学习java io流的东西,有一个网友看到博客后问了一个问题,就是说他的doc文档为什么用我所说的方法死活就是乱码。

我一开始以为是他方法问题,结果自己试了之后发现和他的结果一样也是乱码。

于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝试后,终于以正确的编码格式读取了这个doc文件。

在网上搜索的过程中发现doc和docx的读取方法是不一样的,于是顺带也学了一下docx文件的简单读取。

一、导包:

doc文件的读取,需要导入poi-scratchpad的jar包和相关依赖包:

docx文件读取,需要导入poi-ooxml的jar包和相关依赖包:

我用的是maven构建项目,相关的依赖包会自动导入,maven导包配置如下:

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

二、读取文件的代码:

1、doc文件读取简单示例:

public static void readAndWriterTest3() throws IOException {
    File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.doc");
    String str = "";
    try {
      FileInputStream fis = new FileInputStream(file);
      HWPFDocument doc = new HWPFDocument(fis);
      String doc1 = doc.getDocumentText();
      System.out.println(doc1);
      StringBuilder doc2 = doc.getText();
      System.out.println(doc2);
      Range rang = doc.getRange();
      String doc3 = rang.text();
      System.out.println(doc3);
      fis.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

2、docx文件读取简单示例:

public static void readAndWriterTest4() throws IOException {
    File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.docx");
    String str = "";
    try {
      FileInputStream fis = new FileInputStream(file);
      XWPFDocument xdoc = new XWPFDocument(fis);
      XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
      String doc1 = extractor.getText();
      System.out.println(doc1);
      fis.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

我并没有在工作中操作过word,这篇博客也只是一时兴起所做,因此写的很简单。

而最近陆续有朋友找我询问相关的问题,其中有好几个都在询问依赖包有哪些,为了避免一再回答这种问题,特将依赖包截图:


到此这篇关于java使用poi读取doc和docx文件的实现示例的文章就介绍到这了,更多相关java poi读取doc和docx内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一起聊聊Java中的自定义异常

    一起聊聊Java中的自定义异常

    在学习Java的过程中,想必大家都一定学习过异常这个篇章,异常的基本特性和使用这里就不再多讲了。本文就来和大家讲讲如何自定义异常
    2022-08-08
  • 解决外部jar包@Service无法注解无法扫描的问题

    解决外部jar包@Service无法注解无法扫描的问题

    这篇文章主要介绍了解决外部jar包@Service无法注解无法扫描的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java实现多文件上传功能

    Java实现多文件上传功能

    这篇文章主要为大家详细介绍了Java实现多文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Java的Netty进阶之Future和Promise详解

    Java的Netty进阶之Future和Promise详解

    这篇文章主要介绍了Java的Netty进阶之Future和Promise详解,Netty 是基于 Java NIO 的异步事件驱动的网络应用框架,使用 Netty 可以快速开发网络应用,Netty 提供了高层次的抽象来简化 TCP 和 UDP 服务器的编程,但是你仍然可以使用底层的 API,需要的朋友可以参考下
    2023-11-11
  • Java多线程中的Executor详解

    Java多线程中的Executor详解

    这篇文章主要介绍了Java多线程中的Executor详解,该接口提供了一种将任务提交与如何运行每个任务的机制(包括线程使用、调度等细节)解耦的方法,它通常使用预先创建线程而不是创建线程,需要的朋友可以参考下
    2023-12-12
  • 详解Java如何使用集合来实现一个客户信息管理系统

    详解Java如何使用集合来实现一个客户信息管理系统

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java 集合实现一个客户信息管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Java如何实现自定义异常类

    Java如何实现自定义异常类

    这篇文章主要介绍了Java如何实现自定义异常类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java如何实现判断并输出文件大小

    Java如何实现判断并输出文件大小

    这篇文章主要介绍了Java如何实现判断并输出文件大小问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Springmvc如何实现向前台传递数据

    Springmvc如何实现向前台传递数据

    这篇文章主要介绍了Springmvc如何实现向前台传递数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Mybatis 入门之MyBatis环境搭建(第一篇)

    Mybatis 入门之MyBatis环境搭建(第一篇)

    Mybatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。这篇文章主要介绍了Mybatis入门第一篇之MyBaits环境搭建,需要的朋友参考下
    2016-12-12

最新评论