python封装成类_python中操作excel数据 封装成一个类

本文用python中openpyxl库,封装成excel数据的读写方法

from openpyxl import load_workbook

from openpyxl.worksheet.worksheet import Worksheet

class ExcelHandler():

def __init__(self,file):

self.file=file

def open_sheet(self,name) ->Worksheet :

#表示此函数的返回值,是一个这样的类型,函数注解

wb=load_workbook(self.file)#通过属性传递

sheet=wb[name]

return sheet

def header(self,sheet_name):

'''获取表头'''

sheet=self.open_sheet(sheet_name)

headers=[]

for i in sheet[1]:

headers.append(i.value)

return headers

def read(self,sheet_name):

'''读取所有数据'''

sheet=self.open_sheet(sheet_name)

rows=list(sheet.rows)#得到所有的数据,包括表头

data=[]#存取所有行的数据

for row in rows[1:]:

row_data=[]#存取一行的数据

for cell in row:#取出单元格

row_data.append(cell.value)#把单元格的值存在一行的数据中

#列表转字典,要和header zip

data_dict=dict(zip(self.header(sheet_name),row_data))

data.append(data_dict)#把一行的值存在放所有行的数据中

print(data)

return data

@staticmethod

def write(file,sheet_name,row,column,data):

wb=load_workbook(file)

sheet = wb[sheet_name]#获取表单

cell = sheet.cell(row,column)#获取单个单元格

cell.value = data#写入值

wb.save(file)#保存

wb.close()

if __name__ == '__main__':

excel=ExcelHandler(r'D:\cases.xlsx')

sheet=excel.read('Sheet1')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值