2
我想添加我的django應用程序的views.py選項'download as excel'。 HttpResponse在html文件中。這裏有幾個views.py看起來像這樣如何在django中創建下載爲excel選項的views.py
def auto_run_html(request):
htmlfile = HttpResponse()
Month_no = request.GET['Month']
htmlfile.write('<html><HEAD><LINK href="/static/timesheet.css" rel="stylesheet" type="text/css"></HEAD>')
htmlfile.write('<body>')
htmlfile.write('''<table class = "Emp_Details" >
<tr style="text-align:left">
<th>{}</th><th>{}</th>
</tr>
<tr style="text-align:left">
<th>{}</th><th>{}</th>
</tr>
<tr style="text-align:left">
<th>{}</th><th>{}</th>
</tr>
</table>'''.format('Department',dept_row,'Employee ID',dept_row[2],'Employee Name',dept_row))
return HttpResponse(htmlfile)
這裏我想添加下載作爲excel操作。我曾嘗試過這種方式輸出csv,但它只能用於在瀏覽器中顯示爲csv文件而不是html。文檔告訴用戶可以保存爲csv文件,但它只能提供html頁面的選項。
我正在使用django 1.6 & python 2.7。這可能是this的重複。
我是新來的python,如果它只能由python-excel過程完成,那麼請舉例說明我的上述代碼。預先感謝。
這是我的csv編碼veiws.py.Please標出我在哪裏做錯了。
def auto_run_html(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="somefilename.csv"'
htmlfile = csv.writer(response)
htmlfile.writerow('''<table class = "Emp_Details" >
<tr style="text-align:left">
<th>{}</th><th>{}</th>
</tr>
<tr style="text-align:left">
<th>{}</th><th>{}</th>
</tr>
<tr style="text-align:left">
<th>{}</th><th>{}</th>
</tr>
</table>'''.format('Department',dept_row,'Employee ID',dept_row[2],'Employee Name',dept_row))
return response
感謝您的回覆。正如我所說,我嘗試過這一點。但這是爲了在瀏覽器中顯示csv。 – Swagat
用戶如何下載document.csv。我需要知道如何下載document.csv,因爲它不存儲在服務器 – Swagat
這段代碼是正確的。行爲良好的瀏覽器不應顯示文件內容,但應提示下載它。 – Anentropic