Предоставление пользователю файла Excel (xlsx) для загрузки в Django (Python)
Я пытаюсь создавать и обслуживать файлы Excel, используя Django. У меня есть файл JAR, который получает параметры и производит файл Excel в соответствии с параметрами, и это работает без проблем. Но когда я пытаюсь получить полученный файл и передать его пользователю для загрузки, файл выходит из строя. Он имеет размер 0 КБ. Это фрагмент кода, который я использую для генерации и обслуживания Excel.
def generateExcel(request,id):
if os.path.exists('./%s_Report.xlsx' % id):
excel = open("%s_Report.xlsx" % id, "r")
output = StringIO.StringIO(excel.read())
out_content = output.getvalue()
output.close()
response = HttpResponse(out_content,content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename=%s_Report.xlsx' % id
return response
else:
args = ['ServerExcel.jar', id]
result = jarWrapper(*args) # this creates the excel file with no problem
if result:
excel = open("%s_Report.xlsx" % id, "r")
output = StringIO.StringIO(excel.read())
out_content = output.getvalue()
output.close()
response = HttpResponse(out_content,content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename=%s_Report.xlsx' % id
return response
else:
return HttpResponse(json.dumps({"no":"excel","no one": "cries"}))
Я искал возможные решения и пытался использовать File Wrapper, но результат не изменился. Я предполагаю, что у меня есть проблемы с чтением файла xlsx в объект StringIO. Но понятия не имею о том, как это исправить