众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据。敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激!
不多言,小二上码咯。。。
通过 sheet_index 读取 EXCEL 数据源代码如下所示,敬请参阅!
1 /** 2 * @function 文件读取: EXCEL文件 3 * @description 通过EXCEL文件sheet的索引index读取 4 * 5 * @author Aaron.ffp 6 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java excelRead, 2014-11-25 16:11:03 Exp $ 7 * 8 * @param filename : EXCEL文件路径 9 * @param sheetIndex : EXCEL文件sheet索引 10 * 11 * @return ArrayList<String[]> --> EXCEL文件内容的二维数组 12 */ 13 public ArrayList<String[]> excelRead(String filename, int sheetIndex){ 14 /* Excel 数据 */ 15 ArrayList<String[]> excelData = new ArrayList<String[]>(); 16 17 Workbook workbook = null; // 工作薄 18 Cell cell = null; // 单元格 19 20 /* 参数校验: 为null或空字符串时, 抛出参数非法异常 */ 21 if (filename == null || "".equals(filename) || !assertFileType(filename, "EXCEL")) { 22 throw new IllegalArgumentException(); 23 } 24 25 try{ 26 /* 创建输入流 */ 27 FileInputStream fis = new FileInputStream(filename); 28 29 /* 获取 Excel 文件对象 */ 30 workbook = Workbook.getWorkbook(fis); 31 32 /* 获取 Excel 文件的第一个工作表 */ 33 Sheet sheet = workbook.getSheet(sheetIndex); 34 35 /* Excel 文件行数 */ 36 for (int i = 0; i < sheet.getRows(); i++) { 37 /* 声明数组存储行数据 */ 38 String[] rowData = new String[sheet.getColumns()]; 39 40 /* Excel文件列数 */ 41 for (int j = 0; j < sheet.getColumns(); j++) { 42 /* 获取单元格 cell[i][j] */ 43 cell = sheet.getCell(j, i); 44 45 rowData[j] = cell.getContents().toString().trim(); 46 } 47 48 // 若当前行均为null或者空, 则退出循环, 返回非空行数据 49 if (this.stringutil.assertStringListIsNull(rowData)) { 50 return excelData; 51 } 52 53 /* 将获取的行数据存到 excelData */ 54 excelData.add(rowData); 55 } 56 } catch (FileNotFoundException fnfe){ 57 this.message = "文件 {" + filename + "} 不存在!"; 58 this.logger.error(this.message, fnfe); 59 60 return null; 61 } catch (BiffException be){ 62 this.message = "文件 {" + filename + "} 读取失败!"; 63 this.logger.error(this.message, be); 64 65 return null; 66 } catch (IOException ioe){ 67 this.message = "文件 {" + filename + "} 读取失败!"; 68 this.logger.error(this.message, ioe); 69 70 return null; 71 } 72 73 return excelData; 74 }