Я пытаюсь создать и обслуживать файлы excel с помощью Django. У меня есть файл jar, который получает параметры и создает файл excel в соответствии с параметрами, и он работает без проблем. Но когда я пытаюсь получить созданный файл и подавать его пользователю для загрузки, файл выходит нарушенным. Он имеет размер 0 КБ. Это часть кода, которую я использую для генерации и обслуживания Excel.Выполнение файла Excel (xlsx) пользователю для загрузки в Django (Python)
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-объект. Но не знаю, как это исправить.
благодарит за ваш ответ. Проблема не в чтении файла в двоичном режиме, но я также обновил свой код, используя ваши отзывы. Надеюсь, это выглядит лучше :) http://pastebin.com/ydzR2uuP – Srht
SO не место для просмотра кода (вы можете проверить codereview.stackexchange.com), но вот ответ http://pastebin.com/ e4zRAW5U –