在Django的Xlwt导出中显示错误的信息

这件事我很难过 我在页面底部有一个button。 这个页面显示了一个账单的渲染信息,每个账单都不一样,所以这个信息一直在变化。 这个button就在那里,用户可以把账单下载成一个Excel文件。 对于下载,我有这个代码在我的views.py:

def descarga(request,id_factura): fact = Factura.objects.get(pk= id_factura) book = xlwt.Workbook(encoding='utf8') sheet = book.add_sheet('report') alignment = xlwt.Alignment() alignment.horz = xlwt.Alignment.HORZ_LEFT alignment.vert = xlwt.Alignment.VERT_TOP style = xlwt.XFStyle() # Create Style style.alignment = alignment # Add Alignment to Style # write the header header = ['Cliente', 'Fecha de Factura', 'Tipo de Factura', 'Numero de Factura', 'Descripcion', 'Subtotal', 'IVA', 'Precio'] for hcol, hcol_data in enumerate(header): sheet.write(0, hcol, hcol_data, style=xlwt.Style.default_style) # write your data, you can also get it from your model data = { "Cliente": fact.nombre_cliente, "Fecha de Factura":fact.fecha_factura, "Tipo de Factura": fact.tipo_Factura, "Numero de Factura": fact.numero_De_Factura, "Descripcion": fact.descripcion, "Subtotal": fact.importe_sin_iva, "IVA": fact.iva, "Precio": fact.importe_Total, } for row, row_data in enumerate(data, start=1): # start from row no.1 for col, col_data in enumerate(row_data): sheet.write(row, col, col_data) response = HttpResponse(mimetype='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment; filename=report.xls' book.save(response) return response 

我得到的是正确的标题,但我试图与数据字典获得的信息不显示,而是即时获取标题的名称分隔列中的字母,如:

 N umerode F actura 

每个字母都是excel文件中的一列

那么,我该如何解决这个问题,并使正确的信息出现,而不是这个。 任何帮助将非常感激。 谢谢

错误在这里:

 for row, row_data in enumerate(data, start=1): 

你的行是1,2,3,4 …你的row_data是数据的关键字是string,然后第二个循环是在那个string(键)

 for col, col_data in enumerate('Numero de Factura'): 

也许尝试更换:

 for row, row_data in enumerate(data, start=1): # start from row no.1 for col, col_data in enumerate(row_data): sheet.write(row, col, col_data) 

这样:

 for column, key in enumerate(header, start=1): sheet.write(1, column, data[key])