2011-05-16 60 views
5

我想使用xlwt從我的django網站上的數據庫內容創建MS-Excel文件。使用django和xlwt動態生成的MS Excel文件在Internet Explorer中失敗

我在這裏對計算器見過幾個解決方案,特別是這個鏈接:django excel xlwt

這Django的片段:http://djangosnippets.org/snippets/2233/

這些例子在Firefox工作,但無法在Internet Explorer。屏幕上不會出現提示打開或保存文件的提示,而是會出現一堆翼形垃圾。看來IE認爲迴應是html。

這是我的看法功能:

def exportexcel(request): 
    from xlwt import Workbook 

    wb = Workbook() 
    ws = wb.add_sheet('Sheetname') 
    ws.write(0, 0, 'Firstname') 
    ws.write(0, 1, 'Surname') 
    ws.write(1, 0, 'Hans') 
    ws.write(1, 1, 'Muster') 

    fname = 'testfile.xls' 
    response = HttpResponse(mimetype="application/ms-excel") 
    response['Content-Disposition'] = 'attachment; filename=%s' % fname 

    wb.save(response) 

    return response 

我在IE 8

任何建議看到這種行爲,爲什麼這在Internet Explorer中不工作?

謝謝。

+0

嘗試使用'application/vnd.ms-excel' mimetype。 – manji 2011-05-16 23:00:48

+0

哇,這很快,它的工作。謝謝。你能解釋一下'vnd'的作用嗎? – sequoia 2011-05-16 23:04:02

+0

看看我的解答。 – manji 2011-05-16 23:09:52

回答

4

您正在使用的mimetype application/ms-excel對於.xls文件無效。

的標準之一是application/vnd.ms-excel

看吧Setting mime type for excel document更多信息。

+0

儘管如此,Content-Disposition標題應該導致保存提示。 OP應該使用Fiddler來查看HTTP響應頭以確保頭正在被髮送。 – EricLaw 2011-05-17 04:25:54

相關問題