java poi解析word的方法

作者:chanjuan 时间:2023-08-28 07:31:28 

之前做过用java读取word文档,获取word文本内容。

但发现docx的支持,doc就异常了。

后来找了很多资料发现是解析方法不一样。

首先要导入poi相关的jar包

我用的是maven,pom.xml引入如下:


<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>

java获取word文本内容如下:


public BaseResp getParsedTxt(MultipartFile file) throws Exception {
   BaseResp br=new BaseResp("200","") ;
   String textType = file.getContentType();
   String txt = "";
   if(textType.equals(TXT_TYPE)){
     String code = getCharset(file);
     txt = new String(file.getBytes(),code);
   }else if(textType.equals(DOC_TYPE)){
     HWPFDocument doc = new HWPFDocument(file.getInputStream());
     Range rang = doc.getRange();
     txt = rang.text();
     System.out.println(txt);
   }else if(textType.equals(DOCX_TYPE)){
     File uFile = new File("tempFile.docx");
     if(!uFile.exists()){
       uFile.createNewFile();
     }
     FileCopyUtils.copy(file.getBytes(), uFile);
     O * ackage opcPackage = POIXMLDocument.openPackage("tempFile.docx");
     POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
     txt= extractor.getText();
     uFile.delete();
   }else{
     br = new BaseResp("300","上传文件格式错误,请上传.txt或者.docx");
     return br;
   }
   br.setDatas(txt);
   return br;
 }

功能实现了。

标签:java,poi,word
0
投稿

猜你喜欢

  • Java枚举类使用Lombok方式

    2022-06-28 22:07:02
  • Mybatis 逆向工程的三种方法详解

    2023-08-10 22:27:20
  • java中使用数组进行模拟加密的方法

    2023-11-18 15:37:39
  • Java日常练习题,每天进步一点点(8)

    2022-04-15 16:40:26
  • Android学习笔记--使用剪切板在Activity中传值示例代码

    2022-12-21 13:43:58
  • Mockito mock Kotlin Object类方法报错解决方法

    2022-03-10 15:23:37
  • SpringCloud-Alibaba-Nacos启动失败解决方案

    2023-12-19 05:34:45
  • 改进c# 代码的五个技巧(一)

    2021-07-17 23:49:30
  • java对象初始化代码详解

    2023-09-19 13:59:01
  • MyBatis-Plus实现多数据源的示例代码

    2023-11-11 12:58:11
  • 使用JPA主键@Id,@IdClass,@Embeddable,@EmbeddedId问题

    2022-07-07 18:35:41
  • java实现简单验证码生成

    2022-06-02 10:05:09
  • C#实现rabbitmq 延迟队列功能实例代码

    2023-03-18 02:59:34
  • Java虚拟机JVM性能优化(三):垃圾收集详解

    2021-10-16 10:38:49
  • MyBatis执行Sql的流程实例解析

    2022-06-12 19:43:42
  • SpringBoot的DeferredResult案例:DeferredResult的超时处理方式

    2023-08-09 14:00:58
  • IDEA全量替换一次性解决旧项目并将所有文件换行符改为LF问题

    2022-09-17 18:44:32
  • Spring 事务事件监控及实现原理解析

    2023-12-24 04:20:20
  • android实现下拉菜单三级联动

    2022-10-13 15:46:53
  • Eclipse开发环境导入android sdk的sample中的源码

    2021-06-08 05:28:38
  • asp之家 软件编程 m.aspxhome.com