POI3.8组件研究(五)---excel文件内容抽取为文本

        在一个搜索引擎的使用中需要将各种文件转化为文本信息,创建相关的索引,然后检索。本文将excel2003和excel2007中内容转换为文本信息。

代码如下:

package com.easyway.excel.extact;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.extractor.ExcelExtractor;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.extractor.XSSFExcelExtractor;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
 * 
 * 在以前开发相关luence的搜索时候需要将各种文件转换为文本类型,
 *  获取内容,将内容创建相关的索引,在检索时候,查询相关的索引。
 *  起到高效快捷的方式,本文讲解excel2003和excel2007内容信息的抽取方式。
 *  
 * 
 * @Title: 
 * @Description: 实现针对excel2003和excel 2007 的内容抽取方式 简单快捷
 * @Copyright:Copyright (c) 2011
 * @Company:易程科技股份有限公司
 * @Date:2012-6-14
 * @author  longgangbai
 * @version 1.0
 */
public class ExcelTextExtractor {
		 public static void main(String[] args) {
			  String filename="c:\\station2station.xlsx";
			 InputStream inp;
			 boolean isExcel2003=false;
			try {
				//创建相关的文件流对象
				inp = new FileInputStream(filename);
			    //声明相关的工作薄对象
				Workbook wb =null;
			    //声明相关的excel抽取对象
			    ExcelExtractor extractor=null;
			    if(isExcel2003)//针对2003版本
			    {
			    	//创建excel2003的文件文本抽取对象
			    	wb=new HSSFWorkbook(new POIFSFileSystem(inp));
			    	extractor =new org.apache.poi.hssf.extractor.ExcelExtractor((HSSFWorkbook)wb);
			    }else{ //针对2007版本
			    	wb = new  XSSFWorkbook(inp);
			    	//创建excel2007的文件文本抽取对象
			    	extractor =new XSSFExcelExtractor((XSSFWorkbook)wb);
			    }
			    
			    extractor.setFormulasNotResults(false);
			    //是否抽象sheet页的名称
			    extractor.setIncludeSheetNames(true);
			    //是否抽取cell的注释内容
			    extractor.setIncludeCellComments(true);
			    //获取相关的抽取文本信息
			    String text = extractor.getText();
			    //
			    System.out.println("抽取文本的内容如下 ="+text);
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
}

猜你喜欢

转载自topmanopensource.iteye.com/blog/1561382