文档章节

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

 刘祖鹏
发布于 2017/06/15 17:14
字数 481
阅读 166
收藏 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
博文 44
码字总数 69185
作品 0
通州
高级程序员
PageOffice与Apache POI的区别

相同之处: 都可以对MS Office文档进行填充数据,转HTML、PDF等。 服务器端都不需要装MS Office办公软件。 都支持windows、linux、unix服务器。 2. 不同之处: PageOffice是客户端生成文档的...

山里的红杏
09/12
0
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
在Apache的POI XWPFRun对象分隔文本行

问 题 我是试图取代模板 DOCX 与Apache POI文件使用 XWPFDocument 类。我在doc和 JSON 文件标签读取替换数据。我的问题是一个文本行,似乎在 DOCX以某种方式分离当我改变其推广到邮政编码文件...

Airship
09/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
45分钟前
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
7
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
17
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部