POI是Apache的一个开源项目,可以到Apache网站下载相应的jar包文件,及其源文件。
POI提供了提取一些非TXT文本中文本内容的API,比如提取Word,Excel等,使用起来非常方便。
为了说明POI提起Word文件的方便和简单,通过提取一个Word文件的文本来,来了解POI API的功能。
假设在本地磁盘中存在一个Word文件
E:\POI\word\JBoss3.0 下配置和部署EJB简介.doc文件是具有格式的,内容如图所示:
下面看看提取它的内容是多么简单。
首先从Apache网站上下载POI的相关jar包。
新建一个测试类:
package org.shirdrn.word;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.hwpf.extractor.WordExtractor;
public class MyWordExtractor {
public static void main(String[] args) {
File file = new File("E:\\POI\\word\\JBoss3.0 下配置和部署EJB简介.doc");
try {
FileInputStream fis = new FileInputStream(file);
WordExtractor wordExtractor = new WordExtractor(fis);
System.out.println("【 使用getText()方法提取的Word文件的内容如下所示:】");
System.out.println(wordExtractor.getText());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
提取Word文件的文本内容,打印到控制台上,如下所示:
使用WordExtractor类的getTextFromPieces()方法提取:
wordExtractor.getTextFromPieces();
结果和上面是一样的。
WordExtractor类还有一个可以提取Word文件的各个段落的方法getParagraphText(),返回一个String[]数组,数组中每个元素为一个段的文本内容。
这里,对Word文件中换行也看成是一个段,测试如下:
package org.shirdrn.word;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.hwpf.extractor.WordExtractor;
public class MyWordExtractor {
public static void main(String[] args) {
File file = new File("E:\\POI\\word\\JBoss3.0 下配置和部署EJB简介.doc");
try {
FileInputStream fis = new FileInputStream(file);
WordExtractor wordExtractor = new WordExtractor(fis);
System.out.println("【 使用getText()方法提取的Word文件的内容如下所示:】");
String[] paragraph = wordExtractor.getParagraphText();
System.out.println("该Word文件共有"+paragraph.length+"段。");
for(int i=0;i<paragraph.length;i++){
System.out.println("< 第 "+(i+1)+" 段的内容为 >");
System.out.println(paragraph[i]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
提取Word文件的文本内容,打印到控制台上,如下所示:
从上面的Word文件可以看出,最后一行是Word文件的一个换行符,使用WordExtractor提取时,也把它默认成为一个段,因为一个段结束后应该有一个回车换行符。
如果有多个Word文件,而且放在不同的目录下,要提取它们的文本内容,可以实现一个递归的函数,通过深度遍历,为每一个Word文件进行提取。
如果需要,可以将提取到的Word文件的文本内容输出到本地磁盘中,比如以txt记事本的根式保存。
从上面可以看出,提取Word文件的文本内容,实际上是将Word文件的格式去掉了,获取到文本的内容。
分享到:
相关推荐
poi-tl解析Word文档,包含表格类型的也可以
POI解析word2007文本及图片(已测试).doc
里面包含图片转码的jar包,项目中使用的
使用 POI 解析 Word 文档,可以解析 Word 信息。
附件包含一个web项目,是一个简单的解析excel和word的例子,项目中包含jar poi解析excel、word2007,2010等版本
使用poi替换word中的图片,无需加书签,doc/docx均可,亲测。
poi完美word转html,完整操作资料的引用说明
java使用poi技术解析word文档,简易分析,希望对大家有帮助!
poi实现对word读写操作源码,内包含jar包,还有相关的代码
使用POI解析word文档数据
使用poi库解析excel,word。测试demo。
poi-3.5-beta6-20090622.jar
poi解析word文档的所需jar包,有poi-3.9.jar ,poi-ooxml-3.8-20120326.jar poi-scratchpad-3.8-20120326.jar dom4j-1.6.1.jar xmlbeans-2.6.2.jar ooxml-schemas-1.1.jar 解析word表格的示例代码地址为...
用poi解析word 比较全了,内含获得word的文本内容;获得word的段落;取得word内容的字体样式;读取word图片
poi 解析 office excel 2003,2007 word 2003,2007 的示例,可以同时解析2003,2007
Java 解析WORD PIO 解析word文件,解析WRD文件中的页脚、页眉等
java 利用POI读取Word文件中的内容 java 利用POI读取Word文件中的内容
java.lang.NullPointerException at org.apache.poi.openxml4j.opc....在linux环境下poi读取word文件产生的NullPointerException,此问题找了两天最终解决。希望有同样问题的人能快速解决问题,所以上传此文档
1、本案例采用apache开源的poi3.16,读取word文档中文本 2、testpoi.java文件(直接运行),是实现读取word文档中的表格的功能,可指定读取word文档中某行某列的文本的内容 3、poidemo是一个web工程,运行后,点击首页...
NULL 博文链接:https://53873039oycg.iteye.com/blog/2187388