我正在使用xlsxwriter将我的数据库内容从Django admin导出到Excel文件。 Excel文件中的标题应该是我的模型字段名称,后面是我的数据库中的数据行。我已经让导出过程正常工作,但是当我打开下载的Excel文件时,它会以看似随机的顺序显示我数据库中的所有列/数据。它们的显示顺序与Django admin中显示的字段顺序不同。在Django admin中,信息以表格的正确顺序显示,
A栏 - B栏 - C栏 - D栏 - E栏等 -
然而在我导出的Excel文件中,我看到它全部乱成一团,
B栏 - E栏 - A栏 - D栏 - C栏等 -
这是我的代码。我不明白为什么它不会以正确的顺序导出列名和数据。任何帮助赞赏!
def dump_attorneys_to_xlsx(request):
if request.GET.get('export'):
output = BytesIO()
workbook = xlsxwriter.Workbook(output, {'in_memory': True})
worksheet = workbook.add_worksheet('Summary')
attorneys = Attorney.objects.all().values()
# Write header
worksheet.write_row(0, 0, attorneys[0].keys())
# Write data
for row_index, row_dict in enumerate(attorneys, start=1):
worksheet.write_row(row_index, 0, row_dict.values())
workbook.close()
output.seek(0)
response = HttpResponse(output.read(), content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename=summary.xlsx'
return response
else:
return render("change_list.html",
context_instance=RequestContext(request),
template_name='change_list.html')
答案 0 :(得分:0)
values()
将行作为字典列表返回。在Python中,字典是无序的。