• 自动化测试中excel的使用


    #coding:utf-8
    import os
    import xlrd
    from common.path import dataPath 
    from common.setlog import log
    class ReadExcel(object):
        def __init__(self,fileName,sheetName):
          try:
              self.dataFile = os.path.join(dataPath, fileName)
              self.workBook = xlrd.open_workbook(self.dataFile)
              self.sheetName = self.workBook.sheet_by_name(sheetName)
              self.log=log()          
          except Exception:
              self.log.exception('文件读取失败,请检查文件或是表名是否存在')
              raise
          else:
              self.log.info('文件读取成功')
              
    # 读excel中某个单元格的数据
        def readExcel(self,rownum,colnum):
            try:
                value = self.sheetName.cell(rownum,colnum).value
            except Exception:
                self.log.exception('读取数据数据失败,请查看定位文本框是否存在有效的值')
                raise
            return value
    
    #读excel中某个表的某一行数据,以列表返回,元素之间用逗号隔开的
        def readnrows(self,row):
            try:
              row_value=self.sheetName.row_values(row)
            except Exception:
                self.log.exception('该表有效的数据行为%s行,而输入的行数为%s,请检查!'%(row,self.sheetName.nrows))
                raise
            return row_value
          
    #读excel中某个表的某一列数据,以列表返回,元素之间用逗号隔开的
        def readncols(self,col):
            try:
              col_value=self.sheetName.col_values(col)
            except Exception:
                self.log.exception('该表有效的数据列为%s列,而输入的列数为%s,请检查!'%(col,self.sheetName.ncols))
                raise
            return col_value
    
    # 读excel中某个表的所有数据,以列表返回,列表的每个元素也为一个列表,里面为每行的值,元素之间用逗号隔开的
        def readsheet(self):
            # 创建一个空的List,单独读取每一行或是每一列都是一个列表,那么读取全部那就是将每一行每一列存入一个列表中
            row_list=[]
            # 获取一个sheet的值
            '''
            1、sheet.nrows: 工作表中有值总行数
            2、sheet.ncols:工作表中有值总列数
            3、sheet.row_values(rowx, start_colx=0, end_colx=None):返回给定行中单元格值的一部分(开始行,开始列默认是0,结束列)
            '''
            try:
              for i in range(1, self.sheetName.nrows):
                  row_value=self.sheetName.row_values(i, 0, self.sheetName.ncols-1)
                  row_list.append(row_value)
              return row_list
            except Exception:
              self.log.exception('读取表数据失败,请检查表是否存在')  
              
    if __name__ == '__main__':
        cellValue = ReadExcel('Data.xls','logindata')
        value=cellValue.readnrows(2)  #注意这里是从0开始的
        print(value)

     关注的点:

    1、table.nrows: 工作表中有值总行数

    2、table.ncols:工作表中有值总列数

    3、读取某个单元值:value = self.sheetName.cell(rownum,colnum).value

    4、读取指定行(返回的是一个列表):row_value=self.sheetName.row_values(row)

    5、读取指定列(返回的是一个列表):col_value=self.sheetName.col_values(col)

    6、读取整个表的值(返回的是一个列表,只不过元素也是列表):

    for i in range(1, self.sheetName.nrows):
          row_value=self.sheetName.row_values(i, 0, self.sheetName.ncols-1)
          row_list.append(row_value)
    return row_list
    墨者看遍天下皆是丹青,测试看尽万物皆是bug
  • 相关阅读:
    聚会
    Wannafly summer camp Day2
    HDU6627 equation
    2019牛客暑期多校D.Big Integer
    对主席树的理解以及使用
    2019牛客暑期多校训练营(第四场)C.sequence(单调栈+线段树)
    2019 Multi-University Training Contest 1
    浅谈序列自动机
    2019江西省程序设计竞赛
    拉格朗日插值的应用
  • 原文地址:https://www.cnblogs.com/striver-dl/p/14182128.html
Copyright © 2020-2023  润新知