首页 > 代码库 > 使用poi读取word文档
使用poi读取word文档
看了很多资料,就一点一点总结吧。
word2003和word2007以及以上的后缀名都不一样,一个是doc一个是docx,所以在解析的时候也不一样,而这边主要是使用poi。但是看了很多资料都没有找到所谓的3.8的版本,在官网上只能找到3.11版本(或是是个人的英语水平不行吧)
这个小dome主要就是一个简单的读取word文档,复杂的继续研究:
public class ReadWord {
public static void main(String[] args) {
try {
//2003文档
InputStream is = new FileInputStream(new File("files\\2003.doc"));
WordExtractor ex = new WordExtractor(is);
String text2003 = ex.getText();
System.out.println(text2003);
System.out.println("==========================================");
//word 2007
OPCPackage opcPackage = POIXMLDocument.openPackage("files\\2007.docx");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
} catch (Exception e) {
e.printStackTrace();
}
}
}
同样,2003也可以使用一下方法:
public class WordToTxt {
// 创建字符串缓冲区
/*
* 不能写成StringBuffer stringBuffer=null; 否则会报空指针异常
*/
StringBuffer stringBuffer = new StringBuffer();
// 转换word
public String readWord() {
// word文档路径
String pathword = "files\\2003.doc";
try {
// 创建存储word文档的对象
HWPFDocument doc = new HWPFDocument(new FileInputStream(pathword));
// 用来获得word文档内容
Range range = doc.getRange();
// 文档段落数目
int paragraphCount = range.numParagraphs();
System.out.println(paragraphCount+"=====段落=======");
// 遍历段落读取数据
for (int i = 0; i < paragraphCount; i++) {
Paragraph pph = range.getParagraph(i);
stringBuffer.append(pph.text());
System.out.println(stringBuffer.toString());
System.out.println("=========================");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return stringBuffer.toString().trim();
}
public static void main(String[] args) {
new WordToTxt().readWord();
}
}
本文出自 “Anja的博客” 博客,请务必保留此出处http://xuxy0303.blog.51cto.com/9562154/1608327
使用poi读取word文档