一、代码
备注:封装好了(可直接拿去调用)
""" -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :Jarvis @File :excel_util.py @Version:1.0 """ from typing import List import xlwt class ExcelUtil: def __init__(self, header_data: List[list]): """ :param header_data: 如下格式 header_data = [ [0, '序号'], # 表格第0列[列序号,此列表头名称] [1, '姓名'], # 表格第1列[列序号,此列表头名称] [2, '性别'], [3, '爱好'], [4, '生日'] ] """ self.data = header_data def write(self, out_file, data_body: List[list], sheet_name='sheet'): """ 写入数据 :param out_file: 保存文件(如:test.xlsx) :param data_body: data_body[0]为表格第0行数据 data_body[0][0]为表格第0行第0列单元格值 :param sheet_name: """ # step1 判断数据正确性(每行列数是否相同) count = 0 for pro in data_body: if len(pro) != len(self.data): print('data_body数据错误 第{}行(从0开始) 需为{}个元素'.format(count, len(self.data))) return False count += 1 # step2 写入数据 wd = xlwt.Workbook() sheet = wd.add_sheet(sheet_name) # 表头 for d in self.data: sheet.write(0, d[0], d[1]) # 表体 index = 1 for pro in data_body: for d in self.data: sheet.write(index, d[0], pro[d[0]]) index += 1 wd.save(out_file) if __name__ == '__main__': header = [ [0, '序号'], [1, '姓名'], [2, '性别'], [3, '爱好'], [4, '生日'] ] body = [ [1, '张三', '男', '篮球', '1994-07-23'], [2, '李四', '女', '足球', '1994-04-03'], [3, '王五', '男', '兵乓球', '1994-09-13'] ] ExcelUtil(header_data=header).write(out_file='测试.xlsx', data_body=body)
二、效果
生成的Excel