众所周知,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     }
通过索引读取 excel 文件对应 sheet 页的数据

相关文章: