【Python】資料寫入Excel(封裝後)
阿新 • • 發佈:2020-08-20
一、程式碼
備註:封裝好了(可直接拿去呼叫)
""" -*- 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