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")
原文:https://www.cnblogs.com/kkkhycz/p/12146027.html