Python xlwt 模块编辑 Excle 表格 实例:按行按列写入、自定义格式方法、自动调整列宽等
前言:一、自写类实现:新建工作薄 sheet表,保存文件功能二、自写按行、按列写入方法三、创建格式方法四、自写设置行高列宽方法五、根据单元格内容自动调整列宽、统一设置行高方法结尾: 【Python与Office】专栏前言:
前面三篇博客我们介绍了xlwt模块对Excel表格的很多基础操作,这篇博客我们来自己写一些方法。让我们在操作Excel表格时,更加方便简单,同时也是对前面内容的回顾。
一、自写类实现:新建工作薄 sheet表,保存文件功能
class My_xlwt(object):def __init__(self,sheet_name = sheet_1,re_write = True):\自定义类说明::param sheet_name:默认sheet表对象名称,默认值为 sheet_1:param re_write: 单元格重写写功能默认开启\self.work_book = xlwt.Workbook()self.sheet = self.work_book.add_sheet(sheet_name,cell_overwrite_ok=re_write)self.col_data = {}def save(self,file_name):self.work_book.save(file_name)
解析:
自己写了一个My_xlwt的类,继承Object类。在初始化方法中,新建了一个工作簿与sheet表。
col_data字典用来收集所有写入sheet表的列信息,为后续设置自动调整列宽用。
二、自写按行、按列写入方法
按行写入代码:
def write(self,row,col,label,style = Style.default_style):\在默认sheet表对象一个单元格内写入数据:param row: 写入行:param col: 写入列:param label: 写入数据\self.sheet.write(row,col,label,style)# 将列数据加入到col_data字典中if col not in self.col_data.keys():self.col_data[col] = []self.col_data[col].append(label)else:self.col_data[col].append(label)def write_row(self,start_row,start_col,date_list,style = Style.default_style):\按行写入一行数据:param start_row:写入行序号:param start_col: 写入列序号:param date_list: 写入数据:列表:return: 返回行对象\for col,label in enumerate(date_list):self.write(start_row,start_col+col,label,style)return self.sheet.row(start_row)def write_rows(self,start_row,start_col,data_lists,style = Style.default_style):\按行写入多组数据:param start_row: 开始写入行序号:param start_col: 写入列序号:param data_lists: 列表嵌套列表数据:return: 返回写入行对象列表\
ow_obj = []for row_,data in enumerate(data_lists):if isinstance(data,list):self.write_row(start_row+row_,start_col,data,style)row_obj.append(self.sheet.row(start_row+row_))else:msg = 数据列表不是嵌套列表数据,而是%s % type(data)raise Exception(msg