appium自动化测试(三)--读取excel

Java语言读取excel(一)

public LinkedHashMap<String, String> getExceldata(String tableTitle) {
        LinkedHashMap<String, String> excelData= null;
        FileInputStream fileIs = null;
        try {

            fileIs = new FileInputStream("src/test/resource/exceldata.xlsx");
            XSSFWorkbook excel = new XSSFWorkbook(fileIs);
            XSSFSheet sheet = excel.getSheetAt(0);//获取Excel中第一个sheet
            XSSFRow row1 = sheet.getRow(0);//获取第一行
            String s1_1 = row1.getCell(0).getStringCellValue();//获取第一行第一列的值
            for (int rowN = 0; rowN <= sheet.getLastRowNum(); rowN++) {  //只要不是最后一行就继续读取
                XSSFCell sn_1_c = sheet.getRow(rowN) != null ? sheet.getRow(rowN).getCell(0) : null;//读取指定行不为null,读取指定行中的第一列
                String sn_1 = sn_1_c != null ? sn_1_c.getStringCellValue() : "";指定行中第一列的值

                if (sn_1.equals(tableTitle)) {
                    excelData= new LinkedHashMap<>();
                    XSSFRow rown = sheet.getRow(rowN);
                    for (int cellN = 0; cellN <= row1.getLastCellNum() - 1; cellN++) {//getLastCellNum  获取列数
                        XSSFCell value = rown.getCell(cellN);
                        excelData.put(row1.getCell(cellN).getStringCellValue(), value != null ? value.getStringCellValue() : "");//存放指定行中的每一列的数据
                    }
                    break;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return excelData;
}

Java语言读取excel(二)

public class ReadExcle {
    //根据Excel文件的路径和表格里的sheet读取,这里filepath可以绝对路径和相对路径
    public static Object[][] proessExcel(String filePath,int sheetId) throws IOException {
        //数据流读入excel
        File file = new File(System.getProperty("user.dir")+filePath);
        FileInputStream fis = new FileInputStream(file);
        HSSFWorkbook wb = new HSSFWorkbook(fis);
        //读取特定表单并计算行列数
        HSSFSheet sheet = wb.getSheetAt(sheetId);
        int numberOfRow = sheet.getPhysicalNumberOfRows();
        int numberOfCell = sheet.getRow(0).getLastCellNum();
        //将表单数据处理存入数组,类型为Object
        Object[][] dttData = new Object[numberOfRow][numberOfCell];
        //行为空时结束循环,执行下一行  表格行列均从0开始
        for(int i=0;i<numberOfRow;i++){
            if(null==sheet.getRow(i)||"".equals(sheet.getRow(i))){
                continue;
            }
            for(int j=0;j<numberOfCell;j++) {
                if(null==sheet.getRow(i).getCell(j)||"".equals(sheet.getRow(i).getCell(j))){
                    continue;
                }
                HSSFCell cell = sheet.getRow(i).getCell(j);
                cell.setCellType(CellType.STRING);
                dttData[i][j] = cell.getStringCellValue();
            }
        }
        return dttData;
    }
}

Python语言读取excel

class ReadExcel():
    """读取excel文件数据"""
    def __init__(self,fileName, SheetName="Sheet1"):
        self.data = xlrd.open_workbook(fileName)
        self.table = self.data.sheet_by_name(SheetName)

        # 获取总行数、总列数
        self.nrows = self.table.nrows
        self.ncols = self.table.ncols
    def read_data(self):
        if self.nrows > 1:
            # 获取第一行的内容,列表格式
            keys = self.table.row_values(0)
            listApiData = []
            # 获取每一行的内容,列表格式
            for col in range(1, self.nrows):  #获取第几行的数据   从1到总行数
                values = self.table.row_values(col) #获取第几行的数据传给values
                # keys,values组合转换为字典
                api_dict = dict(zip(keys, values)) #利用zip函数将两个列表组成字典
                listApiData.append(api_dict)  #封装到   key,表头,对应封装的表的内容
            return listApiData
        else:
            print("表格是空数据!")
            return None
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值