1.导入pom.xml
需要先导入解析插件包

  <!-- POI-word文件处理需要 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.1.2</version></dependency>

2.代码示例:

package com.common.utils;import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.slf4j.Logger;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** @ClassName WordAlansis* @Description:  java解析word代码示例* @Author: mischen* @date: 14:57 2022/11/25* @Version 1.0*/
public class WordAlansis {public static void main(String[] args) {String path ="C:\\Users\\Administrator\\Desktop\\公司资料\\面试\\1.docx";// Map<String, String> getContentWps = getContentWps(path);// System.out.println(getContentWps);Map<String, String> getContentWps = getContentDocx(new File(path));System.out.println(getContentWps);}/*** 获取正文文件内容,docx方法** @param file* @return*/public static Map<String, String> getContentDocx(File file) {Map<String, String> map = new HashMap();StringBuffer content = new StringBuffer("");String result = "0";  // 0表示获取正常,1表示获取异常InputStream is = null;Logger logger = null;try {//根据需求入参也可以改为文件路径,对应的输入流部分改为new File(路径)即可is = new FileInputStream(file);// 2007版本的wordXWPFDocument xwpf = new XWPFDocument(is);    // 2007版本,仅支持docx文件处理List<XWPFParagraph> paragraphs = xwpf.getParagraphs();if (paragraphs != null && paragraphs.size() > 0) {for (XWPFParagraph paragraph : paragraphs) {if (!paragraph.getParagraphText().startsWith("    ")) {content.append(paragraph.getParagraphText().trim()).append("\r\n");} else {content.append(paragraph.getParagraphText());}}}} catch (Exception e) {logger.error("docx解析正文异常:" + e);result = "1"; // 出现异常} finally {if (is != null) {try {is.close();} catch (IOException e) {logger.error("" + e);}}map.put("result", result);map.put("content", String.valueOf(content));}return map;}/*** 获取正文文件内容,doc方法** @param path* @return*/public static Map<String, String> getContentDoc(String path) {Map<String, String> map = new HashMap();StringBuffer content = new StringBuffer("");String result = "0";  // 0表示获取正常,1表示获取异常InputStream is = null;Logger logger = null;try {is = new FileInputStream(new File(path));// 2003版本的wordWordExtractor extractor = new WordExtractor(is);  // 2003版本 仅doc格式文件可处理,docx文件不可处理String[] paragraphText = extractor.getParagraphText();   // 获取段落,段落缩进无法获取,可以在前添加空格填充if (paragraphText != null && paragraphText.length > 0) {for (String paragraph : paragraphText) {if (!paragraph.startsWith("    ")) {content.append(paragraph.trim()).append("\r\n");} else {content.append(paragraph);}}}} catch (Exception e) {logger.error("doc解析正文异常:" + e);result = "1"; // 出现异常} finally {if (is != null) {try {is.close();} catch (IOException e) {logger.error("" + e);}}map.put("result", result);map.put("content", content.toString());}return map;}/*** 获取正文文件内容,wps方法** @param path* @return*/public static Map<String, String> getContentWps(String path) {Map<String, String> map = new HashMap();StringBuffer content = new StringBuffer("");String result = "0";  // 0表示获取正常,1表示获取异常InputStream is = null;Logger logger = null;try {is = new FileInputStream(new File(path));// wps版本wordHWPFDocument hwpf = new HWPFDocument(is);WordExtractor wordExtractor = new WordExtractor(hwpf);// 文档文本内容String[] paragraphText1 = wordExtractor.getParagraphText();if (paragraphText1 != null && paragraphText1.length > 0) {for (String paragraph : paragraphText1) {if (!paragraph.startsWith("    ")) {content.append(paragraph.trim()).append("\r\n");} else {content.append(paragraph);}}}} catch (Exception e) {logger.error("wps解析正文异常:" + e);result = "1"; // 出现异常} finally {if (is != null) {try {is.close();} catch (IOException e) {logger.error("" + e);}}map.put("result", result);map.put("content", content.toString());}return map;}
}

java解析word示例(支持docx、doc,wps格式)相关推荐

  1. 使用java将word文档docx,doc(包含图形,文本框)完美转换成所有格式图片(pdf,png,gif,jpeg等等)

    使用java将word文档docx,doc(包含图形,文本框,图片等)完美转换成所有格式图片(pdf,png,gif,jpeg等等)下文中附带代码,效果图等 思路 使用到的包 实现代码 效果图: 思路 ...

  2. Java解析word文档,将word文档题库选择题导入

    学习目标: Java解析word文档,将word文档题库导入 学会word文档的解析,以及各种题型的导入 学习内容: 解析word文档 获取正文文件内容 doc和docx两种解析 解析word文档 p ...

  3. vue实战--vue+elementUI实现多文件上传+预览(word/PDF/图片/docx/doc/xlxs/txt)

    需求 最近在做vue2.0+element UI的项目中遇到了一个需求:需求是多个文件上传的同时实现文件的在线预览功能.需求图如下: 看到这个需求的时候,小栗脑袋一炸.并不知道该如何下手,之前的实践项 ...

  4. 关于poi解析word 2007版docx问题

    最近因工作需要使用java解析word 2007 .docx文档,电脑上用的office版本是未激活的office,保存打开编辑都没有问题,但是使用poi来读取数据时,却提示 而使用WPS和正版的Of ...

  5. java 解析word模板为xml, 动态填充数据到xml,最后输出word文档

    java 解析word模板为xml, 动态填充数据到xml,最后输出word文档 在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的p ...

  6. java实现word转pdf在线预览格式

    java实现word转pdf在线预览格式 前段时间的项目里涉及了此功能,调研过一些方案,踩过一些坑,一一总结在此. java转pdf的方案很多,但是很多都要收费,转pdf也有一些格式方面的问题. 方案 ...

  7. Office中数学公式用Java解析,java解析word公式

    公司正在做教育类产品,在遇到数学公式时,我们一般会使用latex表达式来做保存和渲染. 在其中一个项目上,遇到一个需求是要从office文档(Word或Excel)中导入题目内容至数据库,题目内容中就 ...

  8. java解析word批注

    最近有一个需求,通过java读取word文档,获取里面的批注内容,批注的作者以及被批注的内容,被批注内容所在的章节数和页码数.poi提供的API都是英文的,而且针对word的操作并不是很完善,所以就自 ...

  9. word文档docx解密wps,word文档docx权限密码多少?

    如何取消word文档docx密码保护,忘记word文档docx密码怎么找回?[超级好用]word文档docx解除密码app,用「密码帝」 就可以啦!手机电脑都可以用,一键轻松在线解密!不用下载安装任何 ...

最新文章

  1. 解决问题 inner element must either be a resource reference or empty.
  2. luogu P1199 【三国游戏】
  3. eclipse rcp 多线程
  4. 如何更好的解决问题 : The puzzle of die
  5. python函数调用键盘热键_Tkinter对键盘和鼠标事件的处理
  6. 项目管理的测试版发布
  7. 编译原理(二)之语法分析
  8. SQL中group by的用法
  9. Command 传参的几种方式
  10. 虚数填补了数学的那一个缺口?
  11. linux shell 解析文本文件,linux Shell 全解析
  12. 在Mac OS X下编译 boost|building boost library under mac os x
  13. 安装Fiddler后无法上网的问题
  14. 预产期在线计算机,预产期计算器
  15. mysql的weekday函数_mysql 日期函数
  16. android 打开默认浏览器,Android调用系统自带浏览器打开网页的实现方法
  17. 计算机 小学数学应用题教学设计,小学数学教案相遇问题应用题
  18. 一个程序员分享8年的开发经验
  19. 实现电脑文件自动同步到FTP
  20. 服务器存储的作用和用途,存储服务器有四大作用你都清楚吗?

热门文章

  1. python中re模块及正则匹配
  2. 智能呼叫系统之客户互动中心
  3. (深度学习评估指标)——MS COCO detection evaluation metrics
  4. TCP/IP网络编程之基于TCP的服务端/客户端(一)
  5. 这样设置定时消息通知提醒,重要的信息肯定不会错过
  6. Warm-up pytorch代码
  7. 【爬虫入门】一键爬取LOL全部高清皮肤
  8. 单亲家庭父子的理财通信
  9. 考研英语 - word-list-41
  10. 找准山西智慧城市建设的着力点