转载自罗刚老师的《解密搜索引擎技术实战》电子工业出版社

Word是微软公司开发的字处理文件格式,以“doc”或者“docx”作为文件后缀名。Apache的POI(http://poi.apache.org/)可以用来在Windows或Linux平台下提取Word文档。用POI提取文本的基本方法如下:

public static String readDoc(InputStream is) throws IOException{

//创建WordExtractor

WordExtractor extractor=new WordExtractor(is);

//   对DOC文件进行提取

return extractor.getText();

}

为了提取Word文档的标题,需要深入了解POI接口。一个Word文档包含一个或者多个Section,每个Section下面包含一个或者多个Paragraph,每个Paragrah下面包含一个或者多个CharacterRun。

图3-16 Word文档结构图

遍历Word文档结构的代码如下:

Range r = doc.getRange();

for (int x = 0; x < r.numSections(); x++) {

Section s = r.getSection(x);

for (int y = 0; y < s.numParagraphs(); y++) {

Paragraph p = s.getParagraph(y);

for (int z = 0; z < p.numCharacterRuns(); z++) {

CharacterRun run = p.getCharacterRun(z);

//字符串文本

String text = run.text();

System.out.println(text);

}

}

}

标题往往是居中对齐的。可以通过Paragraph的getJustification方法得到段落的对齐方式。getJustification的返回值0表示左对齐,1表示居中对齐,2表示右对齐,3表示两端对齐。

可以通过CharacterRun对象取得文字内容、字体大小、文字颜色等信息。

run.text();    //文字内容

run.getFontSize(); //字体大小

run.getColor();  //文字颜色

对于Word 95这样的老版本,需要使用Word6Extractor,例如:

Word6Extractor extractor = new Word6Extractor(in);

String text = extractor.getText();

读入文档表格中的内容:

FileInputStream in = new FileInputStream("d:\\test.doc");

POIFSFileSystem pfs = new POIFSFileSystem(in);

HWPFDocument hwpf = new HWPFDocument(pfs);

Range range = hwpf.getRange();

TableIterator it = new TableIterator(range);

while (it.hasNext()) { //看有没有下一个表格

Table tb = (Table) it.next(); //取得下一个表格

for (int i = 0; i < tb.numRows(); i++) {

TableRow tr = tb.getRow(i);

for (int j = 0; j < tr.numCells(); j++) {

TableCell td = tr.getCell(j);

for (int k = 0; k < td.numParagraphs(); k++) {

Paragraph p = td.getParagraph(k);

String s = p.text();

System.out.println(s);

}

}

}

}

WORD的POI处理与原理相关推荐

  1. 浅谈导航数据中POI搜索技术原理

    浅谈导航数据中POI搜索技术原理之一 王健 导航技术的应用已经成为现在生活中重要组成部分,为我们的生活提供了极大的便利.基本都有这样生活的体验,搜索自己位置附近的银行网点.餐馆.那么这些POI是如何快 ...

  2. 导航电子地图数据中POI搜索技术原理之二

    导航电子地图数据中POI搜索技术原理之二 支持任意检索 <浅谈导航数据中POI搜索技术原理>一文介绍了导航电子地图中POI兴趣点数据进行关键字检索的基本原理. 其中,数据的组织方式如下: ...

  3. 图片复制word java_java poi实现word导出(包括word模板的使用、复制表格、复制行、插入图片的使用)...

    java poi实现数据的word导出(包括word模板的使用.复制表格.复制行.插入图片的使用) 1.实现的效果 实现病人基本信息.多条病历数据.多项检查项图片的动态插入(网络图片) 2.模板 把w ...

  4. java word模板poi生成文件_poi读写word模板 / java生成word文档

    有一word文档表格 形如: 姓名 ${name} 电话 ${tel} 下载包链接:点击进入 从数据库读取记录替换上述变量 import java.io.FileOutputStream; impor ...

  5. java word apache poi 操作word模板。

    apache poi 操作word模板. 操作方式: 1.对于固定格,可以遍历格子然后替换其中指定的值例如在要替换的cell写入${example} 这样格式,遍历到之后替换. 2.对于需要增长的表格 ...

  6. java word模板poi生成文件_利用poi读取word模板文件生成新的word文档

    利用poi读取word模板文件生成新的word文档 利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码.解决模板读取异常问题,提供wordUtils工具类(各种功能实现) ...

  7. java word jar_处理word的poi的jar包下载_处理word的poi的jar包官方下载-太平洋下载中心...

    对word文档的处理,提供对word信息抽取的类. 对word处理的poi的jar包(poi-bin-3.2-FINAL-20081019.zip) 现在Java对word excel进行操作的jar ...

  8. 二级备考:ppt自学知识笔记--基础操作2:Word发送到PPT(原理)

    目录 ppt的复用 依照现有ppt模板复用:只导入其他ppt的文本内容 依照现有ppt模板复用:导入其他ppt的文本内容与模板格式 word文本内容转换到ppt的主要步骤 在word界面添加文本转换p ...

  9. POI对Word操作参考

    一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...

最新文章

  1. How to add and configure jetty server in maven pom.xml
  2. 使用Hibernate编写通用数据库操作代码
  3. arima 数据预处理_时间序列分析|ARIMA模型分步骤解析及R中实践
  4. BZOJ 3489: A simple rmq problem
  5. Java基础-Java中的内存分配与回收机制
  6. Zend Studio 13.6.1汉化破解版方法(中文离线包)
  7. python语言案例教程 单元测试_python单元测试unittest实例详解
  8. mongodb之索引使用小结
  9. [区块链] 带你进入Bitcoin开发 - 环境搭建
  10. CCF NOI1154 大整数开方
  11. 初识面向对象(钻石继承,super,多态,封装,method,property,classmethod,staticmethod)...
  12. 在WebBrowser控件使用js调用C#方法
  13. [英语阅读笔记]Creating Master Detail Pages using GridView
  14. Nginx——Nginx实现服务端集群搭建
  15. java pdf 水印_java pdf加水印的方法
  16. nodejs个人学习笔记
  17. 面包板电源线怎么接_面包板的怎么使用
  18. JavaScript离别之作——HTML元素操作
  19. 使用word模板生成word文档的各类方案
  20. 推荐 -- 《分布式系统的工程化开发方法》

热门文章

  1. 一个简单的实现了智能虚拟女友—图灵机器人
  2. visual studio emmet使用
  3. 版本管理器subversion的简单配置以及和apache的结合使用
  4. cout输出精确小数点
  5. 大数据分析如何助力制造行业
  6. 大数据在农业农村的应用
  7. 大数据带来的安全隐患有哪些
  8. 大数据可视化平台有什么优势
  9. 大数据的发展体现在哪些方面
  10. 二年级机器人伙伴看图写话_期末考试一二年级看图写话22篇,附范文!