python - XlsxWriter 对象另存为 http 响应以在 Django 中创建下载

标签 python django excel httpresponse xlsxwriter

XlsxWriter 对象另存为 http 响应以在 Django 中创建下载?

最佳答案

对 Python 3(io.BytesIO 而不是 StringIO.StringIO)和 Django >= 1.5(content_type 的 @alecxe 响应的一点更新> 而不是 mimetype),具有完全在内存中的文件程序集,该程序集已由 @jmcnamara ({'in_memory': True}) 实现!
这是完整的例子:

import io

from django.http.response import HttpResponse

from xlsxwriter.workbook import Workbook


def your_view(request):

    output = io.BytesIO()

    workbook = Workbook(output, {'in_memory': True})
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, 'Hello, world!')
    workbook.close()

    output.seek(0)

    response = HttpResponse(output.read(), content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
    response['Content-Disposition'] = "attachment; filename=test.xlsx"

    output.close()

    return response

关于python - XlsxWriter 对象另存为 http 响应以在 Django 中创建下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16393242/

相关文章:

python - 将包含元组列表的列扩展到当前数据帧

python - 在 Google App Engine 上使用 localflavor Django 表单字段

Django request.is_secure 为重定向方法返回错误值

python - Django QuerySet 过滤字符串

java - 为什么我使用 POI 读取 Excel 2007 失败?

excel - 从 Excel VBA 中的范围获取第一列范围

python - 使用 Z3 求解线性方程

python - configparser.ParsingError : Source contains parsing errors: 'my.ini'

excel - 在 Linux 中将宏脚本添加到外部的 excel 文件中

python - 安装 BlueJeans session API 客户端时出现 "pipenv requires an #egg fragment for version controlled dependencies"警告