Java操作word文档

Java 操作word,对word文档进行读写时,主要用 Apache写的POI这个工具类,网上有POI对用的API和文档,在自己实际的项目中可以查找对应的API进行对应的操作。

特别注意的是:word 文档是分版本的,有doc和docx两种,这两种读取的方式是不同的。以.docx文件结尾实际上也是压缩文件,当你把docx后缀名改成.zip,然后解压可以看到很多xml文件,实际上读取docx文档就是解析xml文档。不相信的可以自己尝试。

把docx改成为zip 的效果图

1、什么是Apache POI

全称Apache POI,使用Java编写的免费开源的跨平台的Java API。是创建和维护操作各种符合 Office Open XML(OOXML)标准和微软的 OLE 2 复合文档格式(OLE2)的 Java API。用它可以使用 Java 读取和创建, 修改 MS Excel 文件. 而且, 还可以使用 Java 读取和创建 MS Word 和 MSPowerPoint 文件。Apache POI 提供 Java 操作 Excel 解决方案(适用于 Excel97-2008)。

2、Apache POI的组件

Apache POI包含用于MS-Office的所有OLE2复合文档的类和方法。此API的组件列表如下:

附上一个简单的代码: POIFS:此组件是所有其他POI元素的基本因素。它用于显式读取不同的文件。HSSF:用于读取和写入.xls格式的MS-Excel文件。XSSF(XML SpreadSheet格式):用于MS-Excel的.xlsx文件格式。HPSF:用于提取MS-Office文件的属性集。HWPF:用于读取和写入MS-Word的.doc扩展文件。XWPF(XML字处理器格式):用于读取和写入MS-Word的扩展文件 .docx 。HSLF:用于阅读,创建和编辑PowerPoint演示文稿。HDGF(Horrible DiaGram格式):它包含MS-Visio二进制文件的类和方法。HPBF(Horrible PuBlisher格式):用于读取和写入MS-Publisher文件。

package com.lq.readDoc;import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.ooxml.POIXMLDocument;
import org.apache.poi.ooxml.extractor.POIXMLTextExtractor;
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.IOException;
import java.io.InputStream;/*** 读取文档中的doc和docx的内容*/
public class ReadDocUtils {public static String ReadDoc(String path) throws IOException {String resullt = "";//首先判断文件中的是doc/docxtry {if (path.endsWith(".doc")) {InputStream is = new FileInputStream(new File(path));WordExtractor re = new WordExtractor(is);resullt = re.getText();re.close();} else if (path.endsWith(".docx")) {OPCPackage opcPackage = POIXMLDocument.openPackage(path);POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);resullt = extractor.getText();extractor.close();} else {System.out.println("此文件不是word文件");}} catch(Exception e){e.printStackTrace();}return resullt;}
}

Java 操作PDF文档

Java 操作PDF文档使用Itext 工具类比较方便,可以替换文字,上传图片,进行word和PDf之间的转化。网上有对应的文档和API,可以自己查找封装工具类。

Java 操作Excel表格

Java 操作Excel: 目前我了解到的主要工具类有两个,一个是Apache的POI,另一个是Alibaba 开源的EasyExcel,EasyExcel解决了 POI 中存在的问题,如果要excel数据量很小,可以用Apache下的,如何是海量数据,建议用EasyExcel,他又很多优势。

EasyExcel的核心功能

读任意大小的03、07版Excel不会OOM读Excel自动通过注解,把结果映射为Java模型读Excel支持多sheet读Excel时候是否对Excel内容做trim()增加容错写小量数据的03版Excel(不要超过2000行)写任意大07版Excel不会OOM写Excel通过注解将表头自动写入Excel写Excel可以自定义Excel样式 如:字体,加粗,表头颜色,数据内容颜色写Excel到多个不同sheet写Excel时一个sheet可以写多个Table写Excel时候自定义是否需要写表头等。

Java学习视频

Java基础:

Java300集,Java必备优质视频_手把手图解学习Java,让学习成为一种享受

Java项目:

【Java游戏项目】1小时教你用Java语言做经典扫雷游戏_手把手教你开发游戏

【Java毕业设计】OA办公系统项目实战_OA员工管理系统项目_java开发

怎么用Java来操作Word和Excel?相关推荐

  1. jacob操作word和excel

    jacob操作word和excel jacob的官方文档:http://danadler.com/jacob/ 微软的javasdk文档:http://f2.grp.yahoofs.com/v1/II ...

  2. java poi 操作word遇到的问题

    java poi 操作word文本,图表,遇到的问题 直接上问题 模板字段匹配问题 图表问题 图表导出 问题:模板找不到对应图表 问题:数据填充后效果不达目标 图表中为零的数值去掉(!!!模板层面解决 ...

  3. java操作word、excel、pdf 下载添加水印

    1.pdf添加水印 pom文件引入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>i ...

  4. javascript 操作Word和Excel的实现代码

    1.保存html页面到word 复制代码 代码如下: <HTML> <HEAD> <title> </title> </HEAD> < ...

  5. VC操作word和excel文件,查询与读写[依赖office环境]

    2016-07-26 10:15AM 田海涛>>记录>>合肥工业大学 由于孟师兄的碗扣式支架建模系统需求,须在程序中加入office相关处理,具体为读取excel文件与生成wo ...

  6. java word 读取excel数据_在Java中实现读写操作Word、Excel等文件

    Jakarta的POI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径:HSSFWorkbook.HSSFSheet.HSSFRow.HSSFCe ...

  7. java openxml 操作 word,openxml word转成xml

    word2007无法打开Office Open XML 文档 由于种种原因,如程序安装错误.注册表被修改,或系统被病毒侵害等. 有时候会造成WORD 2007无法打开.DOC文档的问题,常规的处理办法 ...

  8. 转jacob操作word和excel

    jacob简介 参考资料: jacob的官方文档:http://danadler.com/jacob/ 微软的javasdk文档:http://f2.grp.yahoofs.com/v1/IIwuQ7 ...

  9. Java 水印(Word,Excel,PPT,PDF,JPG)等多种文档

    本文主要使用Free spire.Office for java 对Word,PDF,PPT文档加水印 https://download.csdn.net/download/qq_39220268/1 ...

最新文章

  1. java 解析 jar_解析java中对jar包进行再次修改
  2. toj 2870 理解dijstra
  3. 原始需求的来龙去脉和核心要求
  4. android中 onResume()方法什么时候执行 ??(转)
  5. html 手动添加thead,HTML表格 - 我可以在thead之前添加额外的tbody吗?
  6. Vue学习笔记进阶篇——Render函数
  7. ECMAScript 对象类型
  8. Maven 项目的 org.junit.Test 获取不到(转载)
  9. Angular ngcc和ivy
  10. java textfield赋值_Java中怎么把运行结果显示到textfield中
  11. 机器学习实战(MachineLearinginAction) 第二章 k-近邻算法
  12. linux get current thread count and system threads limit
  13. 电子换向电动机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  14. jquery 选择器 逗号
  15. 悄悄地我走了 著名的非自然死亡
  16. editorloop 占用_【交换机在江湖-维护无忧系列】CPU占用率高故障专题(3)-常见故障案例...
  17. hibernate中持久化类的编写规则和主键生成策略
  18. AWS携手光环云助力2019第三届“中信建投证券杯”世界智能围棋公开赛
  19. 原生开发跟混合开发两者有什么区别
  20. 华为服务器RH2288 V3怎样配置RAID

热门文章

  1. 【加密】各种加密(打乱)易语言代码的sdk代码
  2. GF4的Radiometric Calibration(高分4号的辐射定标)
  3. 二维码登录(三)扫码登录
  4. 蒲福风力等级c语言编程,风力等级标准(蒲福风级表)
  5. CSRF攻击原理和防护措施讲解
  6. 淘宝社会工程学攻击手段
  7. 多ip服务器代理设置
  8. 科技云报道:低代码是一门好生意吗?
  9. 知乎美女挖掘指南--Python实现自动化图片抓取、颜值评分
  10. Android问题笔记 - AutoSize的Toast失效