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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}?