import xlwt,xlrd
from xlutils.copy import copy
from datetime import datetime
from xlrd import xldate_as_tuple
class Excel:
"""
新建多页签表格并写入数据
"""
def __init__(self,path_name,font_name='Times New Roman',height=220,bold=True):
"""
:param path_name: 新建表格的名称默认当前路径
:param font_name: 文字字体
:param height:文字高度
:param bold:文字加粗
"""
self.path_name = path_name
self.font_name = font_name
self.height = height
self.bold = bold
self.number = 0
self.__example__()
def __example__(self):
"""
初始化参数和实例化对象
:return:
"""
self.write = xlwt.Workbook()
self.sheet_obj_list = []
def add_sheet(self,sheet_name):
"""
追加页签对象
:param sheet_name: 页签名称
:return:
"""
try:
self.sheet_obj_list.append(self.write.add_sheet(sheet_name,cell_overwrite_ok=True))
return
except:
return '表格页签不允许重名'
def set(self,data,sheet_name,with_style=[]):
"""
数据写入表格
:param data: 被写入的数据
:param sheet_name: 数据存放的页签名
:param set_style:样式
:return:
"""
assert type(data) == list
result = self.add_sheet(sheet_name)
style = xlwt.XFStyle()
alignment = xlwt.Alignment()
alignment.horz = 0x01
alignment.wrap = 1
style.alignment = alignment
if with_style != []:
for i in with_style:
self.sheet_obj_list[self.number].col(i[0]).width = i[1]
for i in range(len(data)):
if i != 0:
self.bold = False
for j in range(len(data[i])):
try:
self.sheet_obj_list[self.number].write(i,j,data[i][j],style)
except Exception as e:
print(e)
return e
self.number = self.number + 1
return result
def save(self):
"""
保存表格
:return:
"""
self.write.save(self.path_name)