本文介绍了如何将Openpyxl生成的xlsx输出到浏览器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用stackoverflow一段时间,它帮助我很多次。现在我有一个问题我无法解决自己或通过搜索。
我正在尝试输出我的浏览器中由openpyxl生成的excel文件,因为我正在使用phpexcel。该方法似乎是一样的,但我只收到破碎的文件。我的代码如下所示:

  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\\\
'

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)
我使用的是1.5.8和python 2.7版本。
没有任何方法可行。当我从桌面使用它,而不是浏览器它是完美无瑕的。
我将非常感谢您的帮助。



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 latest openpyxl and send_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输出到浏览器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 12:37