excel.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:Server 作者: malaonline 项目源码 文件源码
def queryset_to_workbook(queryset, columns, headers=None, header_style=HEADER_STYLE,
                         default_style=DEFAULT_STYLE, cell_style_map=CELL_STYLE_MAP):
    '''
    ?django QuerySet??????excel?Workbook
    :param queryset: django QuerySet??
    :param columns: ? ('??', '???',        '????')
    :param headers: ? ('name', 'profile.phone', lambda x: (x.balance/100),)
    :param header_style: ?????
    :param default_style: ????
    :param cell_style_map: (????,??)???
    :return: xlwt.Workbook
    '''
    workbook = xlwt.Workbook()
    report_date = datetime.date.today()
    sheet_name = 'Export {0}'.format(report_date.strftime('%Y-%m-%d'))
    sheet = workbook.add_sheet(sheet_name)

    if headers:
        for y, th in enumerate(headers):
            sheet.write(0, y, th, header_style)
    else:
        for y, th in enumerate(columns):
            value = get_column_head(th)
            sheet.write(0, y, value, header_style)

    for x, obj in enumerate(queryset, start=1):
        for y, column in enumerate(columns):
            if callable(column):
                value = column(obj)
            else:
                value = get_column_cell(obj, column)
            style = get_style_by_value(value, cell_style_map, default_style)
            sheet.write(x, y, value, style)

    return workbook
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号