Sirviendo el archivo Excel (xlsx) al usuario para descargar en Django (Python)
Estoy tratando de crear y servir archivos de Excel usando Django. Tengo un archivo jar que obtiene parámetros y produce un archivo Excel de acuerdo con los parámetros y funciona sin problemas. Pero cuando intento obtener el archivo producido y entregarlo al usuario para que lo descargue, el archivo sale roto. Tiene un tamaño de 0kb. Este es el código que estoy usando para la generación y publicación de 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"}))
He buscado posibles soluciones e intenté usar File Wrapper también, pero el resultado no cambió. Supongo que tengo problemas para leer el archivo xlsx en el objeto StringIO. Pero no tengo idea de cómo solucionarlo