Ejemplo n.º 1
0
def dictToXlsx(data):
    from openpyxl import Workbook
    from openpyxl.writer.excel import save_virtual_workbook

    wb = Workbook()
    for sheetname in data['sheets']:
        sheet = data['data'][sheetname]
        ws = wb.create_sheet(title=sheetname)
        for j, field in enumerate(sheet['fields']):
            fieldtxt = field[1] if isinstance(field, tuple) else field
            ws.cell(column=j + 1, row=1, value=fieldtxt)
        for i, row in enumerate(sheet['data']):
            for j, field in enumerate(sheet['fields']):
                fieldv = field[0] if isinstance(field, tuple) else field
                f = row.get(fieldv, None)
                ws.cell(column=j + 1, row=2 + i, value=f)

    return save_virtual_workbook(wb)