zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    水平拖拽滚动条
    垂直拖拽滚动条
    网页特效_拖拽案例
    js实现倒计时
    权限控制
    Eclipse 项目有红感叹号
    JBPM简单介绍
    开博有感
    各种正则表达式
    Python中读取目录里的文件并按排序列出
  • 原文地址:https://www.cnblogs.com/danhuai/p/13538291.html
Copyright © 2011-2022 走看看