`
aa860326
  • 浏览: 96405 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用POI对Office Excel 97-2003 版本以及2007版进行基本的读取操作

    博客分类:
  • J2EE
阅读更多

使用POI对excel不同的版本进行读操作,参见以下代码:

 

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

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.NumberToTextConverter;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * 读取Excel普通数据格式
 * @author Jack
 * 自动识别Office版本
 * =>支持Office 97-2003版本
 * =>支持Office 2007以上版本
 */
public class ExcelFactory {
	
	private final static MyLog _log = MyLog.getLog(ExcelFactory.class);
	
	private String _filepath;			// 文件路径(仅限-xls|-xlsx格式)
	private Workbook _workbook;			// Excel工作薄(HSSF*|XSSF*父类)
	private Sheet _sheet;				// Excel工作表
	private Row _row;					// Excel行
	private Cell _cell;					// Excel单元格
	private int _rows;					// Excel已使用的总行数(索引+1)
	private int _columns;				// Excel列数->从配置文件统计出来
	private int _begin;					// Excel开始行->从配置文件中获取
	private boolean isXLS;				// 判断是否是{-xls}
	private final static String XLSX = ".xlsx";
	
	public ExcelFactory(String filepath, int columns, int begin) throws FileNotFoundException, IOException {
		_filepath = filepath;
		_columns = columns;
		_begin = begin;
		isXLS();
		get();
	}
	
	private void isXLS() {
		if (-1 < _filepath.indexOf(XLSX)) {
			isXLS = true;
			return ;
		}
		isXLS = false;
	}
	
	private Workbook get() throws FileNotFoundException, IOException {
		if (null == _workbook){
			_workbook = isXLS?new XSSFWorkbook(_filepath):new HSSFWorkbook(new FileInputStream(_filepath));
		}
		return _workbook;
	}
	
	public void Read(int index) {
		_sheet = _workbook.getSheetAt(index);
		_rows = _sheet.getLastRowNum();
		for (int y = _begin; y <= _rows; y ++) {
			_row = _sheet.getRow(y);
			if (null == _row){
				continue;
			}
			
			for (int x = 0; x < _columns; x ++){
				_cell = _row.getCell(x);
				if (null == _cell){
					continue;
				}
				String cellValue = getValue(_cell);
				System.out.print((null == cellValue || 0 == cellValue.length())?"#":cellValue);
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	public String getValue(Cell cell){
		switch (cell.getCellType()){
			case Cell.CELL_TYPE_BLANK:
				return "";
			case Cell.CELL_TYPE_BOOLEAN:
				return String.valueOf(cell.getBooleanCellValue());
			case Cell.CELL_TYPE_ERROR:
				break;
			case Cell.CELL_TYPE_FORMULA:
				return cell.getCellFormula();
			case Cell.CELL_TYPE_NUMERIC:
				return NumberToTextConverter.toText(cell.getNumericCellValue());
			case Cell.CELL_TYPE_STRING:
				return cell.getStringCellValue();
			default :
				return cell.getStringCellValue();
		}
		return cell.getStringCellValue();
	}
	
	public static void main(String[] args) throws Exception {
//		String filepath = "D:/excel/原始订单-liandong110221.xls";
//		ExcelFactory factory = new ExcelFactory(filepath, 17, 1);
//		factory.Read(0);
		
		String filepath = "D:/excel/test.xlsx";
		ExcelFactory factory = new ExcelFactory(filepath, 13, 0);
		factory.Read(0);
	}
}

 

分享到:
评论
1 楼 padangel 2012-05-28  
狠不错,给我一些启发了

相关推荐

    poi的所有jar包,poi, poi-ooxml,poi-ooxml-schemas的各个版本jar

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。这个压缩包包含了POI项目的几个核心组件的jar文件,包括基础的`poi`库,以及支持Open XML格式(OOXML)的`poi-...

    Npoi生成Excel 97-2003/ (xls)文件

    NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。...NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。

    通过POI统一读取Excel文件(兼容97-2003和2007+两种格式)

    这篇博客“通过POI统一读取Excel文件(兼容97-2003和2007+两种格式)”正是介绍了如何使用Apache POI库来处理不同版本的Excel文件。 Apache POI 提供了两个主要的API来处理Excel文件:HSSF(Horrible Spreadsheet ...

    poi全家桶ooxml-schemas/poi/poi-examples/poi-ooxml/poi-ooxml-schemas/poi-scratchpad

    通过使用Apache POI,开发者可以在Java应用程序中实现与Excel的深度交互,比如创建复杂的表格、图表,执行公式计算,以及读取和修改现有文件。标签中的"poi excel 表格"明确指出,这里的重点是处理Excel文件,这在...

    poi-3.9、poi-ooxml-3.9、poi-ooxml-schemas-3.9

    HSSF是用于读写旧的BIFF格式(Excel 97-2007),而XSSF则是用于处理新的OOXML格式(Excel 2007及以后版本)。 2. poi-ooxml-3.9.jar:这个库提供了对Office Open XML (OOXML) 格式的额外支持。OOXML是微软推出的一...

    POI操作EXCEL,支持office2003,2007,2010,2013(详)

    这个“POI操作EXCEL,支持office2003,2007,2010,2013(详)”的主题涵盖了一系列知识点,旨在帮助开发者熟练地使用Apache POI处理不同版本的Excel文件。 首先,我们来看Excel的两种主要文件格式:`.xls`(Excel 97-...

    Java实现Excel读写的poi 5.2.1版本jar

    在这个5.2.1版本中,POI提供了对Excel电子表格的强大支持,包括读取数据、修改内容、创建新工作簿以及处理复杂的公式和样式。 `poi-ooxml-lite-5.2.1.jar`:这个轻量级的JAR文件包含了处理OOXML(Office Open XML)...

    java对Excel的jar包poi-3.15,poi-3.16,poi-3.17

    Java中的Apache POI库是用于处理Microsoft Office格式文件的强大工具,特别是Excel(.xls和.xlsx)文件。在Java编程环境中,POI库提供了一种高效且灵活的方式来读取、写入和修改Excel文档。在提供的压缩包中,我们有...

    poi-ooxml-schemas-3.17.zip 最新版下载

    Apache POI是一个流行的Java库,用于处理Microsoft Office格式的文件,如Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。而"poi-ooxml-schemas-3.17.zip"是Apache POI项目的一个组件,包含了Open XML(OOXML...

    poi-ooxml-schemas-3.8,poi-3.8,poi-ooxml jar包合集

    标题中的"poi-ooxml-schemas-3.8,poi-3.8,poi-ooxml jar包合集"指的是Apache POI项目中用于处理Microsoft Office格式文件的Java库,特别是针对Excel(XLS和XLSX)文档的处理。Apache POI是一个流行的开源库,允许...

    poi 解析 office excel 2003,2007 word 2003,2007 的示例

    本示例将详细介绍如何使用Apache POI解析Office Excel 2003和2007,以及Word 2003和2007的文件。 首先,我们来看Excel的解析。Excel 2003使用的是.BOOK文件格式(HSSFWorkbook),而2007及以上版本使用的是.XLSX...

    java+poi+excel读取写入等操作所有jar(最新支持excel2013)+poi-bin-3.10-beta2-20130904源代码学习

    在Java中,使用POI库可以实现对Excel文件的读取、写入以及修改等操作,这对于数据分析、报表生成、自动化测试等场景非常实用。在你提到的资源中,"javaYdmxx80.zip"很可能包含了进行这些操作所需的jar文件,这些文件...

    android POI 读取excel 精简jar

    在Android上使用这些库进行Excel读取时,开发者需要注意以下几点: 1. **兼容性**: 考虑到Android设备的多样性,需要确保选择的库能兼容广泛的Android版本。 2. **内存管理**: 因为Android设备的内存有限,处理大型...

    POI 读取 WORD EXCEL POWERPOINT 2003 2007

    这个项目为 Java 开发者提供了强大的 API,使得在没有安装 Microsoft Office 的情况下,也能进行读取、写入以及操作这些文件。下面将详细阐述 POI 库在处理不同 Office 文件中的应用和关键知识点。 1. **处理 Word ...

    poi-3.16.jar,poi-ooxml-3.16.jar,poi-ooxml-schemas-3.16.jar

    HSSF和HWPF分别用于处理老版本的BIFF格式(Excel 97-2007)和Word 97-2007格式,而XSSF和XWPF则用于处理Office Open XML(OOXML)格式的新版Excel和Word文件。 2. `poi-ooxml-3.16.jar`:这个库提供了对OOXML格式的...

    java 读取excel文件97-2007等格式

    - **poi-3.8-beta2-20110408.jar**: 主要包含处理Excel 97-2003格式(`.xls`)的核心类。 - **poi-excelant-3.8-beta2-20110408.jar**: 提供了一些额外的工具类来帮助处理Excel文档。 - **poi-ooxml-3.8-beta2-...

    poi-scratchpad-3.12-20150511和poi-3.12-20150511包

    Apache POI是一个开源项目,主要用于处理Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。在本例中,我们关注的是与处理PowerPoint文件相关的部分,即"poi-...

    poi3.9读写excel兼容03和07版本

    "poi3.9读写excel兼容03和07版本"这个标题指的是使用Apache POI 3.9版本的API,能够兼容两种不同格式的Excel文件:.xls(Excel 2003及更早版本)和.xlsx(Excel 2007及更高版本)。 在描述中提到的"完美修订版本...

    poi-3.9 apache-poi-3.9 最新稳定版本

    总的来说,Apache POI 3.9版本为Java开发者提供了强大的处理Excel文件的能力,无论是读取旧版的.xls文件,还是编写现代的.xlsx文件,都能游刃有余。在实际项目中,我们可以利用它进行数据的读取、分析、转换和报告...

    poi-bin-5.2.2-230220312.jar

    标题中的"poi-bin-5.2.2-230220312.jar"是Apache POI项目的一个特定版本的二进制发行版,主要用于处理Microsoft Office格式的文件,特别是Excel工作簿。Apache POI是Java领域中广泛使用的库,它允许开发者通过Java...

Global site tag (gtag.js) - Google Analytics