import openpyxl # 操作excel 的包
def error(func):
def wrapper(*args,**kwargs):
try:
return func(*args,**kwargs)
except:
raise PermissionError("Please check if the file is opened by EXCEl")
return wrapper
class PyExcel(object):
def __init__(self,name=None):
self.name = name
if self.name is None:
self.obj = openpyxl.Workbook()
else:
self.obj = openpyxl.load_workbook(name)
@error
def create_file(self,name):
"""创建一个文件"""
self.obj.save(name)
self.name = name
@error
def write_cell(self,row,col,content):
"""往cell 中写入内容"""
act_sheet=self.obj.active # 激活sheet
act_sheet.cell(row=row,column=col,value=content) # 坐标从1开始
self.obj.save(self.name) # 保存文件
@error
def write_content(self,row:int,content):
"""写入内容"""
act_sheet=self.obj.worksheets[0] #列表获取第一个工作簿
act_sheet["A%d"%row] = content # 写入值
self.obj.save(self.name)
@error
def read_data(self,row,col): # 坐标从1 开始
"""获取特定坐标的值"""
act_sheet=self.obj.active # 激活默认的工作簿
con=act_sheet.cell(row=row,column=col).value
return con
@error
def get_all_row_con(self):
"""获取所有的行内容"""
act_sheet = self.obj.active
content_list = list()
for i in act_sheet.iter_rows():
content_list.append(map(lambda x:x.value,i))
return content_list
@error
def copy_sheet(self):
"""拷贝工作簿"""
act_sheet=self.obj.copy_worksheet(self.obj.worksheets[0])
act_sheet.title = "bak" # 重命名工作簿
self.obj.save(self.name)
t=PyExcel("test.xlsx")
res=t.read_data(7,1)
for i in t.get_all_row_con():
print(tuple(i))
python操作EXCEl
最新推荐文章于 2022-02-24 08:16:04 发布