博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取excel表格数据
阅读量:4290 次
发布时间:2019-05-27

本文共 2237 字,大约阅读时间需要 7 分钟。

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

操作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包地址:

   

第一个:

执行到这一样时: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包

你可能感兴趣的文章
MySQL和Oracle的delete,truncate
查看>>
idea使用心得(2)-安装设置与创建web项目
查看>>
将项目放到服务器tomcat上运行
查看>>
JS几种变量交换方式以及性能分析对比
查看>>
Android面试一天一题(6)——如何进行技术选型
查看>>
Velocity笔记--使用Velocity获取动态Web项目名的问题
查看>>
安卓学习:如何将一个Activity设置成窗口的样式
查看>>
Android: 自定义 View
查看>>
MySQL-99语法:外连接与内连接-(左内连接多表和查询)
查看>>
Struts2之Struts2-2.5.5 Interceptor
查看>>
Java基础-21总结字符流,IO流编码问题,实用案例
查看>>
Zookeeper请求处理
查看>>
当Java遇见了Html--Jsp……
查看>>
什么是分布式数据存储
查看>>
Java 进阶——类成员初始化顺序
查看>>
厉害了我滴哥,原来验证码是这么造出来的!
查看>>
Oracle数据库中几种非常有用的函数(with……as等)
查看>>
简单学习Nginx之:动静分离
查看>>
JQUERY 选择器的用法
查看>>
Java 时间类-Calendar、Date、LocalDate/LocalTime
查看>>