excel类封装
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")

浙公网安备 33010602011771号