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

java读取excel

    博客分类:
  • JAVA
阅读更多
JDK1.5 JXL1.4 JXL如果版本与JDK不兼容造成读写失败
JXL官网下载有版本对应说明
public class ExcelReader implements Serializable  {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -6695377007617333835L;

	public ExcelReader(String path){
		excelPath = path;
		init();
	}
	
	private static Logger logger = LoggerManager.getLogger(ExcelReader.class);
	
	//Excel文件路径
	private String excelPath = "";	
	//Excel文件对象
	private Workbook workBook = null;
	//Excel文件Sheet所有对象
	private HashMap<String, Sheet> sheetsMap = new HashMap<String, Sheet>();
	private Sheet[] sheets = null;
	//当前sheet对象
	private Sheet currentSheet = null;
	//Excel中Sheet行所含所有列对象
	//private Cell[] cells = null;
	//当前sheet表中当前行标
	private int index = 0;
	//当前sheet表中行数
	private int rows = 0;
	
	public int getIndex() {
		return index;
	}

	public void setIndex(int index) {
		this.index = index;
	}	
	
	public void setExcelPath(String excelPath) {
		this.excelPath = excelPath;
		init();
	}
	
	/**
	 * 初始化Excel文件对象
	 */
	private void init(){
		try {			
			workBook = Workbook.getWorkbook(new File(excelPath));
			sheets = workBook.getSheets();
			//设置默认的当前活动表为XLS文件第一个表
			currentSheet = sheets[0];
			index = 0;
			rows = currentSheet.getRows();
			for(Sheet sheet : sheets){
				sheetsMap.put(sheet.getName(), sheet);
			}
		} catch (Exception e) {			
			logger.error("初始化Excel文件对象失败!");
		} 
	}
	
	/**
	 * 根据表名设置活动sheet
	 * @param sheetName	sheet表名
	 */
	public void setCurrentSheet(String sheetName){
		if(sheetsMap.containsKey(sheetName)){
			currentSheet = sheetsMap.get(sheetName);
			index = 0;
			rows = currentSheet.getRows();
		}
	}
	
	/**
	 * 根据给出表号设置当前活动sheet表
	 * @param _index	表号
	 */
	public void setCurrentSheet(int _index){
		if(_index>sheets.length || _index < 0){
			logger.info("请设置合理的Sheet表号:0~" + sheets.length);
			return;
		}
		currentSheet = sheets[_index];
		//重置行号
		index = 0;
		rows = currentSheet.getRows();
	}
	
	/**
	 * 取得当前活动sheet表
	 * @return
	 */
	public Sheet getCurrentSheet(){
		return currentSheet;
	}
	
	/**
	 * 通过sheet表名取得sheet表
	 * @param sheetName
	 * @return
	 */
	public Sheet getSheet(String sheetName){
		if(sheetsMap.containsKey(sheetName)){
			return sheetsMap.get(sheetName);
		}
		return null;
	}
	
	/**
	 * 根据给出的表标号取得sheet表
	 * @param _index		
	 * @return
	 */
	public Sheet getSheet(int _index){
		if(_index>sheets.length || _index < 0){
			logger.info("请设置合理的Sheet表号:0~" + sheets.length);
			return null;
		}
		return sheets[_index];
	}
	
	/**
	 * 重置当前sheet行标
	 */
	public void reset(){
		index = 0;
	}
	
	/**
	 * 判断当前sheet表是否还有其他行
	 * @return true/false
	 */
	public boolean hasMore(){
		return (index <rows)? true : false;
	}
	
	/**
	 * 取得下一行所有列
	 * @return Cell[]
	 */
	public Cell[] next(){
		return currentSheet.getRow(index++);
	}
	
	/**
	 * 取得sheet表中对应行、列的内容
	 * @param sheetName	sheet表名
	 * @param row		行标
	 * @param cols		列标
	 * @return
	 */
	public String getContents(String sheetName,int row, int cols){
		if(workBook == null){
			logger.info("Excel文件对象未初始化!");
			return "";
		}
		if(sheetsMap.containsKey(sheetName)){
			return sheetsMap.get(sheetName).getCell(row, cols).getContents();
		}		
		return "";
	}
	
	/**
	 * 取得sheet表中对应行、列的内容
	 * @param _index		表号
	 * @param row		行标
	 * @param cols		列标
	 * @return
	 */
	public String getContents(int _index,int row, int cols){
		if(workBook == null){
			logger.info("Excel文件对象未初始化!");
			return "";
		}
		if(_index>sheets.length || _index < 0){
			logger.info("请设置合理的Sheet表号:0~" + sheets.length);
			return null;
		}		
		return sheets[index].getCell(row, cols).getContents();				
	}	
	
	/**
	 * Excel文件对象释放
	 */
	public void release(){
		if( workBook != null){
			workBook.close();
		}
	}
}
分享到:
评论
2 楼 bannamoon 2011-03-08  
dongbiying 写道
  帮我一大忙!不过,怎么没有说明要jar呀!呵呵

JXL1.4 jdk版本1.5
1 楼 dongbiying 2011-03-04  
  帮我一大忙!不过,怎么没有说明要jar呀!呵呵

相关推荐

    Java读取Excel内容

    Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容

    完美解决java读取excel内存溢出问题.rar

    总结来说,解决Java读取Excel内存溢出问题,关键在于合理利用资源、优化代码逻辑以及选择适合的API,如Apache POI的SXSSF。通过这些方法,我们可以在不显著增加系统资源负担的情况下,高效地处理大Excel文件。

    JAVA读取Excel,建库建表,并生成java实体

    总结,Java读取Excel并进行数据库建库建表及生成Java实体的过程涉及了Apache POI库的使用、数据库操作和源代码生成。理解这些步骤可以帮助你有效地处理类似的任务,提高开发效率。在实际应用中,你还需要考虑错误...

    java读取excel数据导入数据库源码

    java读取excel数据导入数据库源码 java读取excel数据导入数据库源码

    java读取excel文件生成矩阵

    在Java编程中,读取...以上就是使用Java读取Excel文件生成矩阵的基本步骤。实际开发中,你可能还需要处理更多细节,如异常处理、数据验证、优化性能等。希望这个介绍能帮助你理解这个过程,并在实际项目中灵活应用。

    Java读取Excel表格中的日期

    ### Java读取Excel表格中的日期 #### 背景与问题描述 在处理Excel文件时,经常遇到的一个问题是如何正确地识别并处理日期格式的数据。这是因为Excel中的日期格式较为复杂,有时甚至会出现不同版本的Excel文件中...

    JAVA读取 excelJAVA读取 excel

    在Java编程环境中,读取Excel文件是一项常见的...Java读取Excel文件是一个相对复杂的任务,但通过Apache POI库,我们可以简化这个过程,高效地处理Excel数据。记住,始终确保正确处理文件流和资源,以避免潜在的问题。

    java读取excel之xlsl超大文件

    标题"java读取excel之xlsl超大文件"所涉及的核心知识点是优化大量数据的读取策略。在Java中,可以使用Apache POI的SXSSF API(Streaming Usermodel API)来实现这种优化。与常规的XSSF API不同,SXSSF允许我们以流的...

    Java读取excel

    Java读取excel

    java读取excel所有页的数据

    本篇将详细介绍如何使用Java读取Excel所有页的数据,以及可能出现的问题和解决策略。 首先,我们需要引入能够处理Excel文件的库。Apache POI 是一个广泛使用的Java API,它允许程序员创建、修改和显示Microsoft ...

    java 读取Excel文件中的内容

    在Java编程中,读取Excel文件的内容是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常包含表格数据,而Java提供多种库来处理这类任务,比如Apache POI、JExcelApi和OpenCSV等。本篇将重点...

    Java读取Excel支持2003和2007

    提供的压缩包可能包含了一个Java读取Excel的示例程序、相关的说明文件以及用于测试的Excel文件。确保按照提供的说明运行示例程序,以便在实际环境中验证读取功能。 总之,Java通过Apache POI库提供了强大的功能来...

    java读取excel文件

    Java 读取 Excel 文件 Java 读取 Excel 文件是指使用 Java 语言从 Excel 文件中读取数据,并对其进行处理的过程。下面将详细介绍 Java 读取 Excel 文件的过程和相关知识点。 Java 读取 Excel 文件的步骤 1. 导入...

    java读取excel文件jar包20181223

    Java读取Excel文件是开发过程中常见的任务,尤其是在处理数据导入导出、数据分析或者报表生成时。这个名为"java读取excel文件jar包20181223"的资源可能包含了一些帮助Java开发者实现这一功能的库。下面将详细讨论...

    java读取Excel中多个sheet生成xml文件

    java读取Excel表中的内容,可以读取多个sheet,生成自定义格式的xml文件

    java读取excel数据!

    在Java编程环境中,读取Excel数据是一项常见的任务,特别是在数据处理、数据分析或系统集成的场景中。本示例中,我们关注的是如何使用Java来读取Excel表格中的数据,并将其保存,这通常涉及到Apache POI库的应用。...

    JAVA读取Excel实例,可直接运行

    标题提到的是一个可以直接运行的JAVA读取Excel的实例,而描述则指出在解压文件后,需要调整文件路径和Excel文件名以适应本地环境。 首先,我们要了解Java中用于读取Excel的库。最常用的是Apache POI项目,它提供了...

    java 读取excel表格数据 poi

    java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...

    java读取excel存入mysql

    本示例程序将指导你如何使用Java读取Excel文件并将其内容存入MySQL数据库。这对于数据导入、数据分析或者自动化报告等任务非常有用。 首先,你需要在项目中引入Apache POI库,这是一个Java API,用于处理Microsoft ...

Global site tag (gtag.js) - Google Analytics