我试图让用户在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)。这可能是原因(在这种情况下我仍然需要一个解决方案)?
答案 0 :(得分:2)
尝试将文件打开为二进制文件:
f = open(file_path, 'rb')