您好我有一个简单的视图,它返回一个查询集的 csv 文件,该文件是使用 utf-8 编码从 mysql db 生成的:
def export_csv(request):
...
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=search_results.csv'
writer = csv.writer(response, dialect=csv.excel)
for item in query_set:
writer.writerow(smart_str(item))
return response
return render(request, 'search_results.html', context)
这可以作为 CSV 文件正常工作,并且可以在文本编辑器、LibreOffice 等中毫无问题地打开。
但是,我需要提供一个可以在 Windows 的 MS Excel 中打开而不会出错的文件。如果我在查询集中有带有拉丁字符的字符串,例如“Española”,那么 Excel 中的输出是“Española”。
我试过这篇博文,但没有帮助。我也知道xlwt 包,但我很好奇是否有一种方法可以使用我目前拥有的 CSV 方法来纠正输出。
非常感谢任何帮助。