import bson
import datetime
from openpyxl import load_workbook
class 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做赋值替换,抛出异常日志,发送邮件等。编程基础是判断、循环、数据类型,高级一点就是进行封装调用。在实际解决问题中,就是把这些东西合理的组合起来'''