Java通过poi读取word,excel,ppt文件中文本(word部分)

一:认识POI 
Apache POI是一个开源的利用Java读写Excel、WORD等微软OLE2组件文档的项目。3.5以后加入了对采用OOXML格式的Office 2007支持,如xlsx、docx、pptx文档。 
POI主页:poi.apache.org/

二:POI下载地址:http://poi.apache.org/download.html  目前版本最新版本3.13beta1,针对office2010及以下版本的正常读写功能3.5版本足以


三:POI组成部分概览


以下是POI的几个重要组成部分,以及各组件的功能概述。 

POIFS:是格式化OLE 2复合文档为纯Java的接口。 它同时支持读写功能。所有的组件,最终都依赖于它的定义

HSSF: MS-Excel 97-2003(.xls),基于BIFF8格式的JAVA接口。

HWPF: MS-Word 97-2003(.doc),基于BIFF8格式的JAVA接口。只支持.doc文件简单的操作,读写能力有限。

HSLF:MS - PowerPoint 97-2003 (.ppt),基于BIFF8格式的JAVA接口。

XSSF:MS-Excel 2007+(.xlsx),基于OOXML格式的JAVA接口。

XWPF:MS-Word 2007+(.docx),基于OOXML格式的JAVA接口。较HWPF功能完善。

XSLF: MS - PowerPoint 2007+(.pptx),基于OOXML格式的JAVA接口。较HWPF功能完善。



四:HWPF读写word97-2003实例

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
//
import org.apache.poi.hwpf.extractor.WordExtractor;

public class FileTextRead {
    public static void main(String[] args) {
	FileTextRead frs=new FileTextRead();
	System.out.println(frs.getTextFromWord("D:\\hwpftext.doc"));
	}
    public String getTextFromWord(String filePath){
  	String result = null;
  	File file = new File(filePath);
        try{
	    FileInputStream fis = new FileInputStream(file);
       	   //得到.doc文件提取器 
            WordExtractor wordExtractor = new WordExtractor(fis);
            //提取.doc正文文本 
            result = wordExtractor.getText();
            //提取.doc批注  
            //String[] comments = wordExtractor.getCommentsText(); 
            wordExtractor.close();
        }catch(FileNotFoundException e){
	    e.printStackTrace();
	}catch(IOException e){
	    e.printStackTrace();
		};
		return result;
	}
}
D:\text.doc文件内容如下

打印结果:

测试poi读取doc中分本文档

五:XWPF:MS-Word 2007+(.docx)
我们只能获取到其文本,而不能获取到其文本对应的属性值

package office.file.read;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;


public class FileTextRead {
	public static void main(String[] args) {
		FileTextRead frs=new FileTextRead();
		System.out.println(frs.getTextFromWord2007("D:\\xwpftext.docx"));
	}
	public String getTextFromWord2007(String filePath){
		InputStream is = null;
		XWPFDocument doc = null;
<pre name="code" class="java"><pre name="code" class="java">                String text="";
  try {is = new FileInputStream(filePath);doc = new XWPFDocument(is); 

                        XWPFWordExtractor extractor = new XWPFWordExtractor(doc);  
	                text = extractor.getText();<pre name="code" class="java"><pre name="code" class="java">                        extractor.close();
 
  } catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace(); } //获得docx文件提取器 return text;}} 
 结果内容和打印结果同上 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值