python之将读取excle并将列表转为字典

import openpyxl

# 第一步打开工作薄(读取excel文件中的数据保存为工作簿)
workbook = openpyxl.load_workbook(r"C:\Users\Administrator\Desktop\11.xlsx")
print(workbook)
# 第二步,选中表单对象
sheet = workbook["login"]  # excle对应sheet名称
print(sheet)
# 第三步:1.通过表单选中表格读取数据
data = sheet.cell(row=2, column=3)
print(data)
print(data.value)
# 2.写入内存数据
sheet.cell(row=2, column=6, value=7)
# 写入内存数据,需要保存才会生效
workbook.save(r"C:\Users\Administrator\Desktop\11.xlsx")  # 文件一定要关掉
# 3获取最大的行和列,不要随便在excle中写入空格,否者会增加对应的空格
print(sheet.max_row)
print(sheet.max_column)
# 4.rows:按行获取所有的格子对象,每一行的格子放入一个元组
# print(list(sheet.rows))

# 读取excle的类
'''
封装为了使用更加方便,提高代码的重用率
'''


class ReadExcle(object):
    def __init__(self, filname, sheet_name):
        """

        :param filname: excle的文件名称
        :param sheet_name: sheet的名称
        """
        self.filename = filname
        self.sheet_name = sheet_name

    def open(self):
        self.wb = openpyxl.load_workbook(self.filename)
        self.sh = self.wb[self.sheet_name]

    def save(self):
        """
        报错工作簿的方法
        :return:
        """
        self.wb.save(self.filename)
        self.wb.close()  # 主要作用释放内存

    def read_data(self):
        """
        读取数据
        #1打开工作簿,选中表单
        :return:
        """
        self.open()
        # 获取最大的行
        max_row = self.sh.max_row
        max_colmn = self.sh.max_column
        datas = []
        for i in range(1, max_row + 1):
            date = []
            for j in range(1, max_colmn + 1):
                date1 = self.sh.cell(i, j).value
                date.append(date1)
            datas.append(date)

        title = datas[0]
        print("data===", datas)
        cases = []
        for data in datas[1:]:
            case = dict(zip(title, data))
            cases.append(case)

        return cases

    def write_data(self):
        pass


excel = ReadExcle(r"C:\Users\Administrator\Desktop\12.xlsx", "login")
excel.read_data()

  

posted @ 2022-05-03 16:55  木棉花的漂泊  阅读(1243)  评论(0编辑  收藏  举报