问题描述
我正在使用stackoverflow一段时间,它帮助我很多次。现在我有一个问题我无法解决自己或通过搜索。我正在尝试输出我的浏览器中由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输出到浏览器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!