poi操作office之word篇
来源:互联网 发布:spyder安装python包 编辑:程序博客网 时间:2024/06/04 00:45
读取 2003 版本(.doc)的word文件相对来说比较简单,只需要
1. poi-3.5-beta6-20090622.jar
2. poi-scratchpad-3.5-beta6-20090622.jar
两个 jar 包即可,
而2007 版本(.docx)就麻烦多,是要导入的 jar 包比较的多,有如下 7 个之多:
1. openxml4j-bin-beta.jar
2. poi-3.5-beta6-20090622.jar3. poi-ooxml-3.5-beta6-20090622.jar
4 .dom4j-1.6.1.jar
5. geronimo-stax-api_1.0_spec-1.0.jar
6. ooxml-schemas-1.0.jar
7. xmlbeans-2.3.0.jar
其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目录下可以找到)。
// word 2003: 图片不会被读取
InputStream is = new FileInputStream(new File("F:\\001.doc"));
WordExtractor ex = new WordExtractor(is);
String text2003 = ex.getText();
System.out.println(text2003);
// word 2007: 图片不会被读取
OPCPackage opcPackage = POIXMLDocument.openPackage("F:\\10.docx");
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
String text2007 = extractor.getText();
System.out.println(text2007);
处理word中的表格
try {
FileInputStream in = new FileInputStream("F:\\10.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();
// 迭代行,默认从0开始
for (int i = 0; i < tb.numRows(); i++) {
TableRow tr = tb.getRow(i);
// 迭代列,默认从0开始
for (int j = 0; j < tr.numCells(); j++) {
TableCell td = tr.getCell(j);// 取得单元格
// 取得单元格的内容
for (int k = 0; k < td.numParagraphs(); k++) {
Paragraph para = td.getParagraph(k);
String s = para.text().trim();
System.out.println(s);
} // end for
} // end for
} // end for
} // end while
} catch (Exception e) {
e.printStackTrace();
}
这是最近遇到的问题,利用POI读取文本的时候是可以的,注意2003和2007的读取方式不一样还有一个问题需要证实:word中既有文本又含有表格的时候怎么才能正确解析?我再word中插入表格,可以正确解析,但是在文本和表格都有的时候,解析不出来。请看到的人能帮忙指点。。。
- poi操作office之word篇
- Apache POI 操作Office文档(Excel,Word)
- POI:全面了解POI操作Microsoft Office(Word、Excel、PowerPoint)
- c++操作Office之Word
- POI操作Microsoft Office(Word、Excel、PowerPoint)全面了解
- Web在线操作Office之Word
- .net相关office操作之生成word
- 操作office的POI
- poi操作office文档
- POI操作office
- apache poi操作office文档---- POI Word DOC格式转Html
- office word细节操作
- 微软office操作(word)
- POI操作WORD
- poi操作word文档
- poi操作WORD文档
- POI操作WORD
- POI 操作word excel
- 文件I/O
- java的多态认识
- MySQL性能优化经验
- JDWP Transport dt_socket failed to initialize
- 自定义 Yii CGridView 和 CListView 组件
- poi操作office之word篇
- C/C++中枚举类型(enum)
- 华为2012校园招聘机试第二道:数组重新排序问题
- 关于System.UnauthorizedAccessException: 拒绝访问的处理办法
- ubifs & mtd
- 文字闪烁效果
- C#的自动内存管理机制-ASP.NET中的垃圾回收机制(GC)【资料来自网络】
- 八个经典故事
- Strip SSL via Ettercap Man in the Middle Attack