您好我有,它返回其從一個MySQL生成分貝使用UTF-8編碼一個查詢集的csv文件的簡單視圖:Django的CSV輸出在Excel
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'。我試過blogpost,但沒有幫助。我也知道xlwt package,但我很好奇是否有辦法糾正輸出,使用我目前使用的CSV方法。
任何幫助非常感謝。
我嘗試了幾個不同的編碼。 cp1250與其他人一樣會產生以下錯誤:''ascii'編解碼器無法解碼位置4中的字節0xc3:序號不在範圍內(128)' –
您可以將結果(2行)呈現給變量並將其張貼在此處可以嘗試? –
這是前兩行的一個簡化的'.values_list':'[(u'Abutilon depauperatum',u'Espa \ xf1ola'),'(u'Abutilon depauperatum',u'Espa \ xf1ola')]' –