Java后台系统中常常会遇到读取文档内容的需求,今天把 Java 读取两种格式的word文档写了一个简单的工具类附上:

1. 需要添加 Apache.poi 的依赖

 <!--  apache  poi--><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.8</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

2. 工具类代码

package com.lq.file.word;/*** <p>Description:POIUtil 工具类</p>* <p>Copyright: Copyright (c)2019</p>* <p>Company: Tope</p>* <P>@version 1.0</P>*/
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;public class POIUtil {/*** @Description: POI 读取  word* @create: 2019-07-27 9:48* @update logs* @throws Exception*/public static List<String> readWord(String filePath) throws Exception{List<String> linList = new ArrayList<String>();String buffer = "";try {if (filePath.endsWith(".doc")) {InputStream is = new FileInputStream(new File(filePath));WordExtractor ex = new WordExtractor(is);buffer = ex.getText();ex.close();if(buffer.length() > 0){//使用回车换行符分割字符串String [] arry = buffer.split("\\r\\n");for (String string : arry) {linList.add(string.trim());}}} else if (filePath.endsWith(".docx")) {OPCPackage opcPackage = POIXMLDocument.openPackage(filePath);POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);buffer = extractor.getText();extractor.close();if(buffer.length() > 0){//使用换行符分割字符串String [] arry = buffer.split("\\n");for (String string : arry) {linList.add(string.trim());}}} else {return null;}return linList;} catch (Exception e) {System.out.print("error---->"+filePath);e.printStackTrace();return null;}}}

Java 读取Doc/Docx 文档相关推荐

  1. 使用python-docx读取doc,docx文档

    API:    http://python-docx.readthedocs.io/en/latest/#api-documentation 将doc转为docx: from win32com imp ...

  2. 在线预览doc,docx文档

    在线预览doc,docx文档 前言:上传成功以后的每个文档都能获取到所传文件的路径; 我这里是一个maven项目,需要在pom文件引入 <!-- 文件预览 --><dependenc ...

  3. Java web/springboot上传word/doc/docx文档(含图片)与HTML富文本导入/导出互相转换解析!附项目源码

    测试效果 先看下效果 文档内容如下: 上传 上传docx文档 查看解析内容 <html><head><style>p{margin-top:0pt;margin-b ...

  4. java docx转pdf_java word/doc/docx文档转PDF 加水印

    本文实例讲述了java实现word文档转pdf并添加水印的方法.分享给大家供大家参考,具体如下: 前段时间,项目需要将上传的Word文档在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研 ...

  5. (doc, docx)文档合并的三种方法

    Word文档合并几种方式 通过com.spire.doc包 具体参考地址:https://www.e-iceblue.cn/spiredocforjavaoperating/merge-word-do ...

  6. HWPFDocument读取doc,wps文档(含图片读取)

    导包 代码: 1.图片工具类 1 package com.poi.test;2 3 import java.util.ArrayList;4 import java.util.HashMap;5 im ...

  7. 利用Freemarker模板生成doc或者docx文档(转载整理)

    可以直接看主要代码实现 doc作为模板文件生成指定格式的doc文件 实现逻辑 1.把作为模板的doc文件另存为xml文件 2.凡是需要填充的数据用${xxxx}替代 3.利用Template类将数据填 ...

  8. Word处理控件Aspose.Words功能演示:使用 Java 比较 MS Word 文档

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此 ...

  9. Word处理控件Aspose.Words功能演示:从 Java 中的 Word 文档中提取图像

    图像通常用于表示 Word 文档中的重要信息.在文本旁边包含图像使内容更具吸引力.在某些情况下,您可能需要以编程方式提取嵌入在 Word 文档中的图像.为此,本文介绍了如何使用 Java 从 Word ...

  10. 自己用js做的在线word文档编辑器oarword-doc/docx文档编辑、导出导出

    分享自己用js做的在线word文档编辑器oarword 支持基本doc/docx文档编辑,导出和导出,类似google docs和zoho 源码分享在Github:https://github.com ...

最新文章

  1. ceph PG设计,状态机,peering,recovery 导图
  2. VSCode注册关联自定义类型文件
  3. mysql修改字段非必输_mysql有些字段是非必填的,传空要查所有数据该怎么处理?...
  4. IbatisNet注意点
  5. hbase1.1.1 连接集群_Hadoop2.7.1+Hbase1.1.2集群环境搭建(10) hadoop hbase kerberos
  6. 从非数组对象转数组方法小结
  7. 小博老师精选Java十大CMS ——建站神器
  8. python实现洗牌算法_【Python】洗牌算法及 random 中 shuffle 方法和 sample 方法浅析...
  9. UE4添加人物动画之前后左右移动
  10. 开源 cocos2dx 五彩连珠.
  11. 计算机毕业设计、课程设计之[含论文+源码等]S2SH+mysql的报刊订阅系统[包运行成功]
  12. 全球最强大脑在哪里?阿里小蜜算法团队在寻找
  13. Django web开发(一) - 前端
  14. 安卓的个性化彩色二维码的完美实现
  15. MSDC 4.3 接口规范(15)
  16. Android 辅助服务实战-游戏点击器
  17. 转:成功者的第四个特征,如何与他人打交道?
  18. win10全新系统安装 U盘启动
  19. 【IT之路】微信小程序之美化
  20. 树形数据的搜索方法---javascript

热门文章

  1. 用xbuilder开发遇到的问题
  2. Codeforces Round #707 (Div. 2)
  3. kali制作钓鱼网站
  4. 试验设计与方差分析的基本原理——以单因素试验为例
  5. HDU-5857-Median
  6. Notepad++删除空白行
  7. cad卸载工具_如何彻底卸载CAD?
  8. JavaScript JSON的key 下划线格式与驼峰格式互相转换
  9. delete语句详解
  10. k620显卡 unreal_nvidia quadro k620是什么显卡?