读取excel表格数据


例如,我们要读取的表格如图,



操作excel表格需要的jar包,下载地址:excel表格需要的jar包下载


1、获得Workbook,可以解决现在excel中以xls和xlsx两种格式的excel表格,代码如下:

 String path = "C:\test.xls" ;//excel表格的地址字符串
		String fileType = path.substring(path.lastIndexOf(".") + 1,
				path.length());
		InputStream stream = new FileInputStream(path);
		Workbook wb = null;
		if (fileType.equals("xls")) {
			wb = (Workbook) new HSSFWorkbook(stream);
		} else if (fileType.equals("xlsx")) {
			wb = new XSSFWorkbook(stream);
		} else {
			wb = null;
		}



2、获得Sheet对象

/**
* 获得Sheet对象
*/
sheet = book.getSheetAt(0);

3、获得第0行标题内容

Cell cell1, cell2, cell3;//这里只是3列做实验,实际开发中,可根据实际情况写
		// 获取左上角的单元格
		
		Row row =sheet.getRow(0)  ;
		row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
		cell1 = row.getCell(0);

4、获得excel中的最后一行的行号数

int total = sheet.getLastRowNum() ;//获得excel中的最后一行的行号数

5、获取每一行的单元格

// 获取每一行的单元格
			row = sheet.getRow(i) ;

6、获取每一行每一列的数据

for (int i = 2; i < total; i++) {
			// 获取每一行的单元格
			row = sheet.getRow(i) ;
			for(int j=0;j<3;j++) {
				/**
				 * POI操作Excel时偶尔会出现Cannot get a text value from a numeric
				 * cell的异常错误。
				 * 异常原因:Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串并写入数据库时,
				 * 就会出现Cannot get a text value from a numeric cell的异常错误。
				 * 此异常常见于类似如下代码中:row.getCell(0).getStringCellValue();
				 * 解决办法:先设置Cell的类型,然后就可以把纯数字作为String类型读进来了:
				 * if(row.getCell(0)!=null){
				 * row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
				 * stuUser.setPhone(row.getCell(0).getStringCellValue()); }
				 */
				row.getCell(j).setCellType(Cell.CELL_TYPE_STRING);
			}
			cell1 = row.getCell(0) ;// 第一列
			cell2 = row.getCell(1);//第二列
			cell3 = row.getCell(2);// 第三列
			
			String one = cell1.getStringCellValue();//第一列数据
			String two = cell2.getStringCellValue();//第二列数据
			String three = cell3.getStringCellValue();//第三列数据
		}



补充:上面提供的jar包不全,会导致下面两个的异常:


解决异常的jar包地址:解决下面异常的jar包-excel2003和2007的jar包都有

   

第一个:

执行到这一样时:new XSSFWorkbook(stream);
    
异常:

Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
 这个异常时因为缺少jar包,jar包的名字是:xmlbeans-2.3.0.jar
    
第二个异常:

 异常:
 Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet

这个是因为,使用POI中的XSSFWorkbook操作excel2007(xlsx)的时候抛出的异常:
解决方案:
poi包中默认不支持excel2007,如果需要解析,则需要引入poi-ooxml-schemas-xx.jar包。

引入此包后,可能还会有个异常,原因是找不到dom4j的jar包。
因为poi-ooxml-schemas-xx.jar需要依赖dom4j-xxx.jar包










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值