1. 程式人生 > 實用技巧 >【Python】資料寫入Excel(封裝後)

【Python】資料寫入Excel(封裝後)

一、程式碼

備註:封裝好了(可直接拿去呼叫)

"""
-*- 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