import bsonimport datetimefrom openpyxl import load_workbookclass DoExcel: def __init__(self, file_path, sheet_name): # 初始化文件路径,表名,其他初始化参数根据具体情况提取封装添加 self.file_path = file_path self.sheet_name = sheet_name def do_excel(self): wb = load_workbook(self.file_path) sheet = wb[self.sheet_name] test = [] # 定义空列表用来存储遍历出来的字典数局 now_time = datetime.datetime.now() # 获取当前时间 print(now_time) # 打印当前时间,精度为毫秒级 for i in range(1, sheet.max_row + 1): # 使用for循环遍历所有excel数据 sub_data = {} # 定义空字典存储遍历出来的excel数据 sub_data['key1'] = eval(sheet.cell(i, 1).value) sub_data['key2'] = bson.int64.Int64(sheet.cell(i, 2).value) # python中有四种书类型,使用bson函数是将python中的int数据类型转成long类型 sub_data['key3'] = sheet.cell(i, 3).value sub_data['key4'] = sheet.cell(i, 4).value sub_data['key5'] = [sheet.cell(i, 5).value, sheet.cell(i, 6).value] # 特殊需求,有些键对应的值是字典、列表、元组,具体根据情况选择处理 test.append(sub_data) # 将字典数据添加到列表 return test # 返回test列表if __name__ == '__main__': test = DoExcel('data1.xlsx', 'data', 50).do_excel() # 实例化对象 print(test) # 打印test列表数据 '''很多东西并不是一成不变的,同样可以在读取数据时添加判断读取的值为none做赋值替换,抛出异常日志,发送邮件等。编程基础是判断、循环、数据类型,高级一点就是进行封装调用。在实际解决问题中,就是把这些东西合理的组合起来'''