`

java读excel

    博客分类:
  • Java
 
阅读更多

java读excel的方法有两种:
1、jxl.jar来读,后来发现无法读取2007的即.xlsx格式
2、poi.jar来读取,支持2007以上的版本,读取.xls时会报错,如下:

org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException:Package should contain a content type part 

 
所以两个方法可以结合使用

jxl方法只需加

 

jxl.jar

 
poi方法需加jar有:

poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
xmlbeans-2.3.0.jar

 

//判断后缀
String pfix=StringUtils.substringAfterLast(saveName, ".").toLowerCase();
if(pfix!=null&&!pfix.equals("xlsx")){
//==========读取excel文件内容=====jxl方法可读取.xls格式
jlxExcel(saveName);
}else{
//==========读取excel文件内容=====poi方法可读取Excel2007即.xlsx格式
poiExcel(saveName);
}

 

 

  //读取.xls格式,jlx方法
private void jlxExcel(String saveName){
		//===============jlx方法=================
		try{
		String realPath = getPath() + "\\" + saveName;
		File fileDes = new File(realPath);
		InputStream str = new FileInputStream(fileDes);
		// 构造Workbook(工作薄)对象
		Workbook rwb=Workbook.getWorkbook(str);
		Sheet rs=rwb.getSheet(0);//获取第一张工作表
		int rsRows=rs.getRows();//获取Sheet表中所包含的总行数
		int rsCols=rs.getColumns();//获取Sheet表中所包含的总列数
		log.info("========行========"+rsRows+"=====列========"+rsCols);
		for(int i=1;i<rsRows;i++){//读取行
			log.info("========执行第========"+i+"行");
			for(int j=0;j<rsCols;j++){
				log.info("========执行第========"+j+"列");
				Cell coo=rs.getCell(j, i);//单元格定位列,再定位行
			
				log.info("========coo========"+coo);
				String strc=coo.getContents();//读取内容
				log.info("========读取内容strc========"+strc);
				System.out.println("文件"+saveName+"的内容为:"+strc);
			}
		}
		rwb.close();  
		}catch (FileNotFoundException e) {   
			 e.printStackTrace();   
		} catch (BiffException e) {   
		 e.printStackTrace();   
		} catch (IOException e) {   
		 e.printStackTrace();   
		}   
			
		//==========读取excel文件内容=结束=====================
		
	}

 //poi读取.xlsx方法

private void poiExcel(String saveName){
		try{
			String realPath = getPath() + "\\" + saveName;
			File fileDes = new File(realPath);
			InputStream str = new FileInputStream(fileDes);
			XSSFWorkbook xwb = new XSSFWorkbook(str);  //利用poi读取excel文件流
			XSSFSheet st = xwb.getSheetAt(0);  //读取sheet的第一个工作表
			int rows=st.getLastRowNum();//总行数
			int cols;//总列数
			log.info("========行========"+rows);
			for(int i=0;i<rows;i++){
				XSSFRow row=st.getRow(i);//读取某一行数据
				if(row!=null){
					//获取行中所有列数据
					cols=row.getLastCellNum();
					log.info("========行========"+rows+"=====列========"+cols);
				for(int j=0;j<cols;j++){
					XSSFCell cell=row.getCell(j);
					if(cell==null){
						System.out.print("   ");  
					}else{
					//判断单元格的数据类型
					switch (cell.getCellType()) {  
	                    case XSSFCell.CELL_TYPE_NUMERIC: // 数字  
	                        System.out.print(cell.getNumericCellValue() + "   ");  
	                        break;  
	                    case XSSFCell.CELL_TYPE_STRING: // 字符串  
	                        System.out.print(cell.getStringCellValue() + "   ");  
	                        break;  
	                    case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean  
	                        System.out.println(cell.getBooleanCellValue() + "   ");  
	                        break;  
	                    case XSSFCell.CELL_TYPE_FORMULA: // 公式  
	                        System.out.print(cell.getCellFormula() + "   ");  
	                        break;  
	                    case XSSFCell.CELL_TYPE_BLANK: // 空值  
	                        System.out.println("");  
	                        break;  
	                    case XSSFCell.CELL_TYPE_ERROR: // 故障  
	                        System.out.println("故障");  
	                        break;  
	                    default:  
	                        System.out.print("未知类型   ");  
	                        break;  
	                    }  
				}
				}
				}
			}
		}catch(IOException e){
			e.printStackTrace();   
		}
		
	}

 

  • jxl.jar (586.2 KB)
  • 下载次数: 102
分享到:
评论
2 楼 zidiancao 2014-03-03  
包不全吧?
1 楼 suppercontra 2013-06-29  

相关推荐

    Java读取Excel内容

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

    Java读取Excel表格中的日期

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

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

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

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

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

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

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

    java读取excel文件生成矩阵

    在Java编程中,读取Excel文件并生成矩阵是一项常见的任务,尤其在数据分析、报表处理或者数据导入导出的场景下。Excel文件通常用于存储结构化的表格数据,而矩阵则是一种有效的数据表示方式,便于计算和分析。下面...

    java读取excel

    "Java 读取 Excel 文件" Java 读取 Excel 文件是 Java 语言中常见的操作之一,通过使用 Apache POI 库,可以轻松地读取 Excel 文件中的数据。本文将通过 ReadExcelUtil 工具类,详细介绍如何读取 Excel 文件。 ...

    java读取excel所有页的数据

    在Java编程中,读取Excel数据是一项常见的任务,特别是在数据处理和分析的场景下。Excel文件通常包含多个工作表(页),每个工作表都可能存储了大量的数据。本篇将详细介绍如何使用Java读取Excel所有页的数据,以及...

    java读取excel之xlsl超大文件

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

    JAVA读取 excelJAVA读取 excel

    在Java编程环境中,读取Excel文件是一项常见的任务,特别是在数据处理和分析的场景下。Excel文件,通常是.XLS或.XLSX格式,是Microsoft Office Excel创建的,但Java程序员可以利用一些库来处理这些文件,即使没有...

    java读取excel数据!

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

    Java读取excel

    Java读取excel

    java 读取Excel文件中的内容

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

    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内容 创建excel 插入文字及图片

    读取Excel内容主要涉及`XSSFWorkbook`和` XSSFSheet `类。以下是一个简单的示例,展示了如何打开Excel文件并读取第一行数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf....

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

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

    Java读取Excel支持2003和2007

    在Java编程中,读取Excel文件是常见的任务,特别是在数据处理和分析的场景下。Excel文件格式有两种主要版本,即2003年的.xls(基于BIFF8格式)和2007年及以后的.xlsx(基于OpenXML标准)。本教程将详细讲解如何使用...

    JAVA读取EXCEL通用类

    JAVA读取EXCEL通用类,提供接口方便的读取EXCEL文件

Global site tag (gtag.js) - Google Analytics