java读取excel
来源:互联网 发布:罗伯特莫里斯大学 知乎 编辑:程序博客网 时间:2024/05/29 12:51
本例子中使用java的jxl来实现对excel的读取,读取到map中。
本例子在其他人例子的基础上,稍微改动了一下。
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import org.testng.Assert;
import jxl.*;
/**
* Excel放在Data文件夹下</p>
* Excel命名方式:测试类名.xls</p>
* Excel的sheet命名方式:测试方法名</p>
* Excel第一行为Map键值</p>
* 代码参考郑鸿志的Blog
* @ClassName: ExcelDataProvider
* @Description: TODO(读取Excel数据)
*/
public class ExcelDataProvider {
private Workbook book = null;
private Sheet sheet = null;
private int rowNum = 0;
private int currentRowNo = 0;
private int columnNum = 0;
private String[] columnnName;
public ExcelDataProvider(String classname, String methodname) {
try {
int dotNum = classname.indexOf(".");
if (dotNum > 0) {
classname = classname.substring(classname.lastIndexOf(".") + 1,
classname.length());
}
//从/data文件夹下读取以类名命名的excel文件
String path = "data/" + classname + ".xls";
InputStream inputStream = new FileInputStream(path);
book = Workbook.getWorkbook(inputStream);
//取sheet
sheet = book.getSheet(methodname);
rowNum = sheet.getRows();
System.out.println("RowNUm is "+rowNum);
Cell[] cell = sheet.getRow(0);
columnNum = cell.length;
System.out.println("columnNum is "+columnNum);
columnnName = new String[cell.length];
for (int i = 0; i < cell.length; i++) {
columnnName[i] = cell[i].getContents().toString();
}
this.currentRowNo++;
} catch (Exception e) {
e.printStackTrace();
Assert.fail("unable to read Excel data");
}
}
//判断是否读取结束
public boolean hasNext() {
if (this.rowNum == 0 || this.currentRowNo >= this.rowNum) {
try {
book.close();
} catch (Exception e) {
e.printStackTrace();
}
return false;
} else {
// sheet下一行内容为空判定结束
if ((sheet.getRow(currentRowNo))[0].getContents().equals(""))
return false;
return true;
}
}
//每一行的数据都读入到map中,以列名为key,每一行的值为value
public Map<String, String> next() {
Cell[] c = sheet.getRow(this.currentRowNo);
Map<String, String> data = new HashMap<String, String>();
for (int i = 0; i < this.columnNum; i++) {
String temp = "";
try {
temp = c[i].getContents().toString();
} catch (ArrayIndexOutOfBoundsException ex) {
temp = "";
}
data.put(this.columnnName[i], temp);
}
this.currentRowNo++;
return data;
}
public void remove() {
throw new UnsupportedOperationException("remove unsupported.");
}
}
- java读取Excel读取
- Java读取Excel方式
- java读取excel文件
- java读取excel 文件
- JAVA读取EXCEL
- java读取excel
- java读取excel文件
- Java读取Excel文件
- java读取Excel文件
- java读取 excel 文本
- java 读取一个excel
- Java 读取Excel实例
- java 读取excel 文件
- java读取Excel
- java读取Excel
- java读取Excel
- JAVA 读取EXCEL
- java读取Excel文件
- YUV格式浅析
- Vijos 1307-黑皮的正方形【正方形计算】
- Mac自带Apache搭建PHP开发环境(一)phpinfo
- 一致性哈希算法原理设计
- 随机数的生成
- java读取excel
- 如何用Beyond Compare进行文件夹比较
- ireport初相试
- 使用IntelliJ IDEA 14和Maven创建java web项目
- [剑指offer]和为S的连续正数序列
- php url里#后面的参数无法获取
- POST与GET的区别及RESTful
- mysql使用命令行备份和导入数据库
- linux下openoffice doc文档转换成pdf 报错或乱码。Fatal exception: Signal 6