首页 > 其他 > 详细

excel类封装

时间:2020-01-03 20:12:39      阅读:90      评论:0      收藏:0      [点我收藏+]

excel类封装需要提供以下功能:

1、打开表单

2、读取标题

3、读取所有的数据

4、指定单元格写入数据(使用静态方法,不要使用实例方法)

import openpyxl


class ExcelHandler:
    def __init__(self, file):
        # 初始化函数
        self.file = file

    def open_sheet(self, name):     # 打开excel表
        wb = openpyxl.load_workbook(self.file)
        # 通过表单名获取
        sheet = wb[name]
        return sheet

    def read_title(self, sheet_name):   # 读取标题
        # 调用open_sheet函数
        sheet = self.open_sheet(sheet_name)
        title = []
        for i in sheet[1]:
            # 将读取到的值存入到title中
            title.append(i.value)
        return title

    def read_data(self, sheet_name):
        sheet = self.open_sheet(sheet_name)
        # sheet.rows获取所有行
        rows = list(sheet.rows)
        datas = []
        # 数据从第二行开始,第一行是标题
        for row in rows[1:]:
            data = []
            for cell in row:
                data.append(cell.value)
                # 使用zip将两个列表组合成字典
                data_dict = dict(zip(self.read_title(sheet_name), data))
            datas.append(data_dict)
        return datas

    @staticmethod
    def write_data(file, sheet_name, row, column, data):        #写入传入了路径,表单名,行,列,修改的内容等参数
        wb = openpyxl.load_workbook(file)
        sheet = wb[sheet_name]
        sheet.cell(row, column).value = data
        wb.save(file)
        wb.close()

if __name__ == "__main__":
    # 测试数据
    excel = ExcelHandler(r"C:\Users\sky\Desktop\python\cases.xlsx")
    print(excel.read_title("Sheet1"))
    print(excel.read_data("Sheet1"))
    excel.write_data(r"C:\Users\sky\Desktop\python\cases.xlsx", "Sheet1", 2, 1,"liuxing")

  

excel类封装

原文:https://www.cnblogs.com/kkkhycz/p/12146027.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!