我已从mysqldb中读取数据并写入xlsx文件,并使用xlsxwriter存储到目录中。现在我想以xlsx文件而不是文件路径的形式发送响应。能否请任何人帮我做到这一点。
filter_data = (('Shankar','100','Good'),('Sekar','20','Bad'),('Sugu','100','Good'))
workbook = xlsxwriter.Workbook('report.xlsx')
worksheet = workbook.add_worksheet()
for row, x in enumerate(filter_data):
for col, y in enumerate(x):
worksheet.write(row, col, str(y))
workbook.close()
我想在python中将响应作为xlsx文件发送。我尝试过如下
response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="report.xlsx"'
return response
我使用了上面的陈述。但是出现以下错误 未返回HttpResponse对象。而是返回None。
答案 0 :(得分:0)
在HttpResponse
中,您应该提供要发送给用户的文件内容:
response = HttpResponse(content=content, content_type='application/ms-excel')
content
是您要发送给用户下载的文件对象或内容的字节序。
答案 1 :(得分:0)
尝试
with open("path/report.xlsx", "rb") as excel:
data = excel.read()
response = HttpResponse(data, content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="report.xlsx"'
return response