如何将Openpyxl生成的xlsx输出到浏览器? [英] how to output xlsx generated by Openpyxl to browser?
问题描述
我正在尝试输出我的浏览器中由openpyxl生成的excel文件,因为我正在使用phpexcel。该方法似乎是一样的,但我只收到破碎的文件。我的代码如下所示:
from openpyxl.workbook import Workbook
我使用的是1.5.8和python 2.7版本。
from openpyxl.writer.excel import ExcelWriter
from openpyxl.writer.excel import save_virtual_workbook
from openpyxl.cell import get_column_letter
from StringIO import StringIO
print'Content-Type:application / vnd.openxmlformats-officedocument。 spreadsheetml.sheet'
print'Content-Disposition:attachment; filename =results.xlsx'
print'Cache-Control:max-age = 0\\\
'
output = StringIO()
wb = Workbook()
ws = wb.worksheets [0]
ws.cell('A1' ).value = 3.14
wb.save(output)
print output.getvalue()
#print save_virtual_workbook(wb)
没有任何方法可行。当我从桌面使用它,而不是浏览器它是完美无瑕的。
我将非常感谢您的帮助。
P.S。请不要告诉我使用其他语言或程序会更容易。我需要用python解决这个问题。
解决方案这对我来说是有效的。我从烧瓶中使用
python 2.7
和最新的openpyxl
和send_file
...代码...
import StringIO
from openpyxl import Workbook
wb = Workbook()
ws = wb.active#工作表
ws.title =使用Openpyxl的Excel
c = ws.cell(row = 5,column = 5)
c.value =Hi on 5,5
out = StringIO.StringIO()
wb.save(out)
out.seek(0)
return send_file(out,mimetype ='application / vnd.openxmlformats-officedocument.spreadsheetml.sheet',
attachment_filename ='xxl.xlsx',as_attachment = True)
I was using stackoverflow for a while now and it helped me very often. Now I have a problem I couldn't solve myself or through searching. I'm trying to output my excel file generated by openpyxl in browser as I was doing it with phpexcel. The method appears to be the same, but I only get broken file. My code looks like this:
from openpyxl.workbook import Workbook from openpyxl.writer.excel import ExcelWriter from openpyxl.writer.excel import save_virtual_workbook from openpyxl.cell import get_column_letter from StringIO import StringIO print 'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' print 'Content-Disposition: attachment;filename="results.xlsx"' print 'Cache-Control: max-age=0\n' output = StringIO() wb = Workbook() ws = wb.worksheets[0] ws.cell('A1').value = 3.14 wb.save(output) print output.getvalue() #print save_virtual_workbook(wb)
I use the version 1.5.8 and python 2.7. None of the approaches works. When I just use it from desktop and not browser it works flawlessly. I would be very thankful for help.
P.S. please don't tell me that using other language or program would be easier. I need to solve this with python.
解决方案this is work for me. I use
python 2.7
and latestopenpyxl
andsend_file
from flask... code ... import StringIO from openpyxl import Workbook wb = Workbook() ws = wb.active # worksheet ws.title = "Excel Using Openpyxl" c = ws.cell(row=5, column=5) c.value = "Hi on 5,5" out = StringIO.StringIO() wb.save(out) out.seek(0) return send_file(out, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', attachment_filename='xxl.xlsx', as_attachment=True)
这篇关于如何将Openpyxl生成的xlsx输出到浏览器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!