java解析word示例(支持docx、doc,wps格式)
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格式)相关推荐
- 使用java将word文档docx,doc(包含图形,文本框)完美转换成所有格式图片(pdf,png,gif,jpeg等等)
使用java将word文档docx,doc(包含图形,文本框,图片等)完美转换成所有格式图片(pdf,png,gif,jpeg等等)下文中附带代码,效果图等 思路 使用到的包 实现代码 效果图: 思路 ...
- Java解析word文档,将word文档题库选择题导入
学习目标: Java解析word文档,将word文档题库导入 学会word文档的解析,以及各种题型的导入 学习内容: 解析word文档 获取正文文件内容 doc和docx两种解析 解析word文档 p ...
- vue实战--vue+elementUI实现多文件上传+预览(word/PDF/图片/docx/doc/xlxs/txt)
需求 最近在做vue2.0+element UI的项目中遇到了一个需求:需求是多个文件上传的同时实现文件的在线预览功能.需求图如下: 看到这个需求的时候,小栗脑袋一炸.并不知道该如何下手,之前的实践项 ...
- 关于poi解析word 2007版docx问题
最近因工作需要使用java解析word 2007 .docx文档,电脑上用的office版本是未激活的office,保存打开编辑都没有问题,但是使用poi来读取数据时,却提示 而使用WPS和正版的Of ...
- java 解析word模板为xml, 动态填充数据到xml,最后输出word文档
java 解析word模板为xml, 动态填充数据到xml,最后输出word文档 在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的p ...
- java实现word转pdf在线预览格式
java实现word转pdf在线预览格式 前段时间的项目里涉及了此功能,调研过一些方案,踩过一些坑,一一总结在此. java转pdf的方案很多,但是很多都要收费,转pdf也有一些格式方面的问题. 方案 ...
- Office中数学公式用Java解析,java解析word公式
公司正在做教育类产品,在遇到数学公式时,我们一般会使用latex表达式来做保存和渲染. 在其中一个项目上,遇到一个需求是要从office文档(Word或Excel)中导入题目内容至数据库,题目内容中就 ...
- java解析word批注
最近有一个需求,通过java读取word文档,获取里面的批注内容,批注的作者以及被批注的内容,被批注内容所在的章节数和页码数.poi提供的API都是英文的,而且针对word的操作并不是很完善,所以就自 ...
- word文档docx解密wps,word文档docx权限密码多少?
如何取消word文档docx密码保护,忘记word文档docx密码怎么找回?[超级好用]word文档docx解除密码app,用「密码帝」 就可以啦!手机电脑都可以用,一键轻松在线解密!不用下载安装任何 ...
最新文章
- 解决问题 inner element must either be a resource reference or empty.
- luogu P1199 【三国游戏】
- eclipse rcp 多线程
- 如何更好的解决问题 : The puzzle of die
- python函数调用键盘热键_Tkinter对键盘和鼠标事件的处理
- 项目管理的测试版发布
- 编译原理(二)之语法分析
- SQL中group by的用法
- Command 传参的几种方式
- 虚数填补了数学的那一个缺口?
- linux shell 解析文本文件,linux Shell 全解析
- 在Mac OS X下编译 boost|building boost library under mac os x
- 安装Fiddler后无法上网的问题
- 预产期在线计算机,预产期计算器
- mysql的weekday函数_mysql 日期函数
- android 打开默认浏览器,Android调用系统自带浏览器打开网页的实现方法
- 计算机 小学数学应用题教学设计,小学数学教案相遇问题应用题
- 一个程序员分享8年的开发经验
- 实现电脑文件自动同步到FTP
- 服务器存储的作用和用途,存储服务器有四大作用你都清楚吗?