赞同 1
分享

封装一个Excel函数

简介:项目里面下载Excel的方法过于臃肿掺杂了太多的业务逻辑,这里我就写了一个单纯写入的函数,提供了关键字参数后面如果需要可以传入函数做类似于钩子函数的作用。
  2020.08.01
  Bug Man
  1
  53
  172.17.0.1
  中国.上海
 
 

封装一个写入Excel的函数:

import xlwt

def new_write_excel(header, mapping, body, **kwargs):
    """
    数据写入到EXCEL表格
    :param header: 中文表头 -> list
    :param mapping: 对应数据库字段名 -> list
    :param body: 数据 -> list -> dict
    :param kwargs: 扩展关键字参数 -> dict
    :return: xlwt例化 -> object
    """
    # 实例化excel写入对象
    wbk = kwargs.get('wbk', xlwt.Workbook())
    sheet_name = kwargs.get('sheet_name', 'Sheet1')
    # 新建一个选项卡 cell_overwrite_ok能对同一个单元格重复操作
    sheet = wbk.add_sheet(sheet_name, cell_overwrite_ok=True)
    # 写入表头
    for i in xrange(len(header)):
        sheet.write(0, i, unicode(header[i]))
    # 写入表内容
    for i, b in enumerate(body):
        for index, key in enumerate(mapping):
            sheet.write(i + 1, index, b.get(key))
    return wbk

# 准备写入 new_write_excel
wbk = new_write_excel(header, mapping, body)
wbk.save('./upload/dump/{}.xls'.format(downame))