文档章节

POI解析word文档,支持DOC和DOCX版本

 刘祖鹏
发布于 2017/06/15 17:14
字数 481
阅读 137
收藏 0

一、简介

Apache POI是一个开源的利用Java读写Excel、WORD等微软OLE2组件文档的项目。最新的3.5版本有很多改进,加入了对采用OOXML格式的Office 2007支持,如xlsx、docx、pptx文档。

二、POI组成部分概览

  • 以下是POI的几个重要组成部分,以及各组件的功能概述。
  • POIFS是该项目的最古老,最稳定的一部分。.这是格式化OLE 2复合文档为纯Java的接口。 它同时支持读写功能。
  • 所有的组件,最终都依赖于它的定义
  • HSSF 和 XSSF
  • HSSF: MS-Excel 97-2003(.xls),基于BIFF8格式的JAVA接口。
  • XSSF:MS-Excel 2007+(.xlsx),基于OOXML格式的JAVA接口。
  • HWPF 和XWPF
  • HWPF: MS-Word 97-2003(.doc),基于BIFF8格式的JAVA接口。只支持.doc文件简单的操作,读写能力有限。本API为POI项目早期开发,很不幸的 是主要负责HWPF模块开发的工程师-“Ryan Ackley”已经离开Apache组织,现在该模块没有人维护、更新、完善。
  • XWPF:MS-Word 2007+(.docx),基于OOXML格式的JAVA接口。较HWPF功能完善。

三、所需JAR包 这里我使用3.9.x版本

  • poi-3.9-20121203.jar
  • poi-excelant-3.9-20121203.jar
  • poi-ooxml-3.9-20121203.jar
  • poi-ooxml-schemas-3.9-20121203.jar
  • poi-scratchpad-3.9-20121203.jar

四、代码 解析doc格式的文档

InputStream is = new FileInputStream(new File("E:\\TempDirectory\\knowledge_import.doc"));
WordExtractor wordExtractor = new WordExtractor(is);

System.out.println("【 使用getText()方法提取的Word文件的内容如下所示:】");
String text = wordExtractor.getText();
System.out.println(text);

解析docx格式的文档

XWPFWordExtractor docx = new XWPFWordExtractor(POIXMLDocument.openPackage("E:\\TempDirectory\\knowledge_import.docx"));
//提取.docx正文文本
String text = docx.getText();
System.out.println("解析DOCX格式的word文档!"+text);

© 著作权归作者所有

共有 人打赏支持
粉丝 6
博文 43
码字总数 69178
作品 0
通州
高级程序员
开源Word读写组件DocX介绍与入门

今天向大家介绍一款.NET下的开源轻量级Word 2007/2010格式读写组件DocX,很小巧,能够满足大部分工作需求吧,最重要的是可以不用庞大的Office。 1.前言 读写Offic格式的文档,大家多少都有用...

分钟
2014/04/09
0
0
java获取word里面的文本

需求场景   开发的web办公系统如果需要处理大量的Word文档(比如有成千上万个文档),用户一定提出查找包含某些关键字的文档的需求,这就要求能够读取 word 中的文字内容,而忽略其中的文字...

山里的红杏
05/10
0
0
利用Python好好的整理你的附件

目前我的文件夹中有500多份简历,如果我想知道一些信息,比如学校,学历之类的,我需要打开每一份word去查看,太耗时间了。这个时候python需要出马了。 目标 目前类似截图中的word有600+,想...

Bug生活2048
05/10
0
0
java动态填充word文档并上传到服务器

一、 需求背景   在一些特殊应用场合,客户希望在服务器上生成文档的同时并填充数据,客户端的页面不显示打开文档,但是服务器上生成文档对服务器压力很大,目前服务器上生成文档第一种就是方式...

山里的红杏
05/07
0
0
使用Apache POI3.7操作word2007(docx)文本和图片内容

新搭建的个人博客,欢迎光临< 使用Apache POI3.7操作word2007(docx)文本和图片内容,2003的doc文件暂无纯java解决方案,研究中... 用的POI3.7 用的POI3.7 用的POI3.7 重要的说三遍... 不知道...

Sgmder
2016/04/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
30分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
30分钟前
15
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
31分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
42分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部