python - 下载Excel文件

标签 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)上运行它。这可能是原因(在这种情况下我仍然需要解决方案)?

最佳答案

尝试以二进制方式打开文件:

f = open(file_path, 'rb') 

关于python - 下载Excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771070/

相关文章:

python - rsync over ssh - 使用 Paramiko 在 Python 中创建的 channel

python - 有条件地连接 Pandas 数据框中的字符串

python - Django - 链接到同一项目中不同应用程序的网址

python - 通过 join 获取所有字段。 Django

javascript - 语法错误 : expected expression, 得到 '&' (Django)

excel - 在行中查找特定的重复字母或数字

c# - protobuf-net 如何序列化 DateTime?

java - Apache POI 需要很长时间才能生成 excel 表

excel 2007 宏验证输入单元格的数据,如果不正确则显示 msgbox

python - 如何对 Dask 数据框组中的值进行排序?