python+selenium获取excel表格数据

这个是工具类

import xlrd
class ExcelUtil():

    def __init__(self, excelPath, sheetName):
    #def __init__(self, excelPath, sheetName):
        self.data = xlrd.open_workbook(excelPath)
        self.table = self.data.sheet_by_name(sheetName)
        try:
            # 获取总行数
            self.rowNum = self.table.nrows
            if self.rowNum >0 :
                # 获取第一行作为key值
                self.keys = self.table.row_values(0)
                print(self.keys)
                # 获取总列数
                self.colNum = self.table.ncols
        except IndexError as e:
            print("数据为空")
            self.rowNum = 0

    def dict_data(self):
        if self.rowNum <= 1:
            print("总行数小于1")
        else:
            r = []
            j=1
            print("总行数", self.rowNum,"总列数",self.colNum)
            for i in range(self.rowNum-1):
                s = {}
                # 从第二行取对应values值
                values = self.table.row_values(j)
                for x in range(self.colNum):
                    s[self.keys[x]] = values[x]
                r.append(s)
                j+=1
            return r

在启动类里面调用方法

excelGoodsData = ExcelUtil("这是本地excel表的保存路径", "这是excel表的表名sheet")
goodsDatas = excelGoodsData.dict_data() #调用了上面那个工具类

BOM就是sheet名

调用方法的数据返回几个装有集合的数组

例如[{'name':'Tom','age':'19'},{'name':'Jack','age':'20'}]

你要取数据的时候只需要用过for循环把它遍历一下

for good in goodsDatas:
    good['name']#这样就可以获取name的值了
#这里的good是其实是集合{'name':'Tom','age':'19'}

到这里就完成了。记住这里是去的数据name,age其实就是excel表的表头。

你可能感兴趣的:(python,selenium,开发语言)