gpt4 book ai didi

python - Django 服务 .XLSX 文件并强制下载

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:19 25 4
gpt4 key购买 nike

我目前正在使用 openPYXL 在 Django 中打开模板文件

    module_dir = os.path.dirname(__file__)  # get current directory
file_path = os.path.join(module_dir, fileName)
username = request.user.username
workbook = load_workbook(file_path)
worksheet = workbook.active

然后文件被编辑,并以不同的名称保存(这工作正常,我可以打开创建的文件并且它包含所需的信息),但是我正在努力的是将这个文件提供给用户,我已经尝试了各种技术,如下所示

workbook.save('EvalofSelf1.xlsx')
response = HttpResponse()
file_path = os.path.join(os.path.dirname(os.path.realpath(__name__)), 'EvalofSelf1.xlsx')
response['X-Sendfile'] = file_path
response['Content-Type'] = 'mimetype/submimetype'
response['Content-Disposition'] = 'attachment; filename=%s.xlsx' % 'DownloadedEval'

所有这些都按要求提供一个文件,但该文件不包含实际数据,大小为 0kb 且无法打开,我如何从我的 Django 项目目录提供创建的文件,并保留其中存储的所有信息?

最佳答案

您永远不会将文件内容放入响应中,因此它自然是 0 字节。 X-Sendfile 用于完全不同的目的 - 当您重定向到静态服务器时 - 并且无论如何都需要 URL,而不是文件路径。

file_path = os.path.join(os.path.dirname(os.path.realpath(__name__)), 'EvalofSelf1.xlsx')
response = HttpResponse(open(file_path, 'rb').read())
response['Content-Type'] = 'mimetype/submimetype'
response['Content-Disposition'] = 'attachment; filename=DownloadedEval.xlsx'

关于python - Django 服务 .XLSX 文件并强制下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32140806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com