下载Excel文件

时间:2015-04-21 11:34:19

标签: python django excel

我试图让用户在django admin中下载excel文件。到目前为止一切正常,但下载的文件已损坏。

admin.py中的相关操作如下所示:

def write_status_to_excel(self, request, queryset):
    from openpyxl import Workbook
    #create workbook
    #.....
    module_dir=os.path.dirname(__file__)
    dname=r'testfile.xlsx'
    file_path=os.path.join(module_dir,dname)        
    workbook.save(filename = file_path) 

    f = open(file_path, 'r')  
    response = HttpResponse(f, content_type='application/vnd.ms-excel')
    #response = HttpResponse(f, content_type='text/csv') #tried this too
    response['Content-Disposition'] = 'attachment; filename=%s' % os.path.split(file_path)[-1]
    return response

下载的excel文件总是只有142个字节(并且已损坏),而我保存在服务器上的文件(带有workbook.save)没问题。

到目前为止,我只是在开发服务器上运行它(django 1.7,windows 7)。这可能是原因(在这种情况下我仍然需要一个解决方案)?

1 个答案:

答案 0 :(得分:2)

尝试将文件打开为二进制文件:

f = open(file_path, 'rb')