一、简介
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);