testng使用excel进行数据驱动代码参照



import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


 


public class ExcelRead {

public static Object[][] getSearchData(String filePath,String FileName,String sheetName) throws IOException{  
        //根据参数传入的数据文件路径和文件名称,组合出Excel数据文件的绝对路径,声明一个File文件对象  
        File file = new File(filePath + "\\" + FileName);  
        //创建FileInputStream对象用于读取Excel文件  
        FileInputStream inputStream = new FileInputStream(file);  
        Workbook Workbook = null;  
        //获取文件名参数的扩展名,判断是.xlsx文件还是.xls文件  
        String fileExtensionName = FileName.substring(FileName  
                .indexOf("."));  
        if (fileExtensionName.equals(".xlsx")) {  
            Workbook = new XSSFWorkbook(inputStream);  
            //Workbook.close();
        } else if (fileExtensionName.equals(".xls")) {  
            Workbook = new HSSFWorkbook(inputStream);
            //Workbook.close();
        }  
        //通过sheetName参数,声称Sheet对象  
        Sheet Sheet = Workbook.getSheet(sheetName); 
        
        //获取Excel数据文件Sheet1中数据的行数,getLastRowNum()方法获取数据的最后一行行号  
        //getFirstRowNum()方法获取数据的第一行行号,相减之后得出数据的行数,Excel文件的行号和列号都是从0开始  
        int rowCount = Sheet.getLastRowNum() - Sheet.getFirstRowNum();  
        //创建list对象存储从Excel数据文件读取的数据  
        List<Object[]> records = new ArrayList<Object[]>();  
        //循环遍历Excel数据文件的所有数据,除了第一行,第一行是数据列名称  
        for (int i = 1; i < rowCount + 1; i++) {  
            //使用getShow方法获取行对象  
            Row row = Sheet.getRow(i);     
            //声明一个数组,存储Excel数据文件每行中的数据,数组的大小用getLastCellNum()方法进行动态声明,实现测试数据个数和数组大小一致  
            String fields[] = new String[row.getLastCellNum()];  
            for (int j = 0; j < row.getLastCellNum(); j++) {  
                //使用getCell()和getStringCellValue()方法获取Excel文件中的单元格数据
             //设置Cell的类型,将CELL设置为String类型,取出表中的数值型数据
             row.getCell(j).setCellType(Cell.CELL_TYPE_STRING);
                fields[j] =row.getCell(j).getStringCellValue();  
            }  
            //将fields的数据对象存入records的list中  
            records.add(fields);  
        }  
        // 将存储测试数据的List转换为一个Object的二维数组  
        Object[][] results = new Object[records.size()][];  
        // 设置二位数组每行的值,每行是一个Object对象  
        for (int i = 0; i < records.size(); i++) {  
            results[i] = records.get(i);  
        }  
        return results;  
      
  }  

}

猜你喜欢

转载自blog.csdn.net/soultester/article/details/65431479
今日推荐