在一个搜索引擎的使用中需要将各种文件转化为文本信息,创建相关的索引,然后检索。本文将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(); } } }