xlrd读取excel数据封装

# coding:utf-8
import xlrd
class ExcelUtil():
    def __init__(self, excelPath, sheetName="Sheet1"):
        self.data = xlrd.open_workbook(excelPath)
        self.table = self.data.sheet_by_name(sheetName)
        # 获取第一行作为key值
        self.keys = self.table.row_values(0)
        # 获取总行数
        self.rowNum = self.table.nrows
        # 获取总列数
        self.colNum = self.table.ncols

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



if __name__ == "__main__":
    filepath = r"C:\Users\Administrator\Desktop\测试\文件\雅琪\信用卡测试数据\test_data.xlsx"
    sheetName = "Sheet1"
    data = ExcelUtil(filepath, sheetName)
    print(data.dict_data())

 运行结果:

[{'供应商名称': '艾麟222', '渠道码': 452369.0, '所属银行': '浦发银行'}]

注:这里的渠道码应该是一个字符串,xlrd读取时把数据变成了float,需要单独处理。

猜你喜欢

转载自www.cnblogs.com/wenm1128/p/11534205.html