Java poi读写Excel文件

在自动化测试实现过程中,有一步是使用 Excel 管理测试用例,这就涉及到 Java 读取 Excel 文件的知识

1、准备工作
首先需要在 java 项目中导入相应的 jar 包,下载地址为:
http://poi.apache.org/download.html#POI-4.1.1
Java poi读写Excel文件_第1张图片可以下载4.0.1的poi,如果下载4.1.1版本,还需要下载commons-math3-3.6.1.jar 这个 jar 包,否则运行时可能报奇怪的错。

2、向 Excel 中写入数据
几个关键的语句:

//创建Sheet页
Sheet sheetA = wb.createSheet("A");
//创建行,括号中的数字表示第几行,从0开始
Row row = sheetA.createRow(0);
//创建单元格,括号中的数字表示该行的第几列,从0开始
Cell cell = row.createCell(0);
//向单元格中写数据,可写入各种类型的数据(如Boolean,int,double,String等)
cell.setCellValue("一");

写一个 demo ,向 Excel 中写入乘法口诀表。完整代码如下:

  public static void testWrite(){
    //创建工作簿
    Workbook wb = new HSSFWorkbook();
    //创建 Sheet页
    Sheet sheetA = wb.createSheet("A");
    for(int i=0; i<9; i++){
        //创建单元行
      Row row = sheetA.createRow(i);
      for(int j=0; j<=i; j++){
        Cell cell = row.createCell(j);
        cell.setCellValue((j+1)+" * "+(i+1)+" = " + (j+1)*(i+1));
      }
    }    
    try {
     //路径需要存在
      FileOutputStream fos = new FileOutputStream("D:\\newExcel.xls");
      wb.write(fos);
      fos.close();
      wb.close();
      System.out.println("写数据结束!");
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }    
  }

执行完成后,即可在D盘根目录下看到 newExcel.xls 文件

3、从 Excel 中读取数据
将刚刚写入的乘法口诀表读取并输出

public static void read(){
	try {
		InputStream is = new FileInputStream("D:\\newExcel.xls");
		POIFSFileSystem fs = new POIFSFileSystem(is);
		HSSFWorkbook wb = new HSSFWorkbook(fs);
		
		//遍历Sheet页
		for(int sheet=0; sheet < wb.getNumberOfSheets(); sheet++){
			HSSFSheet s = wb.getSheetAt(sheet);
			System.out.println(s.getSheetName());
			if(s == null){
				continue;
			}
			//遍历row
			for(int row = 0; row <= s.getLastRowNum(); row++){
				HSSFRow r = s.getRow(row);
				if(r == null){
					continue;
				}
				//遍历单元格 cell
				for(int cell =0; cell <= r.getLastCellNum(); cell++){
					HSSFCell c = r.getCell(cell);
					if(c == null){
						continue;
					}
					//判断单元格数据类型
					switch (c.getCellType()) { 
					case BOOLEAN: // Boolean类型的处理 
						System.out.print(String.valueOf(c.getBooleanCellValue()) + "  "); 
						break;
					case NUMERIC: // 数字类型的处理 
						System.out.print(String.valueOf(c.getNumericCellValue()) + "  "); 
						break;
					default: // 其他类型则按字符串处理 
						System.out.print(String.valueOf(c.getStringCellValue()) + "  ");
						break;
					}
				}
				System.out.println();
			}
			System.out.println();
		}
		if(is != null){
			is.close();
		}
		if(wb != null){
			wb.close();
		}
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

在读取数据时,有两点需要注意
1)文件格式不能是2007版,否则无法读取
Java poi读写Excel文件_第2张图片
2)文件路径可以是绝对路径,也可以是项目下的相对路径,相对路径的获取方式为

InputStream is = testRead().getClass().getResourceAsStream("/newExcel.xls");

扫码关注微信公众号
Java poi读写Excel文件_第3张图片

你可能感兴趣的:(Java基础学习)