【发布时间】:2012-08-30 12:18:43
【问题描述】:
我现在使用 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\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)
我使用版本 1.5.8 和 python 2.7。 这些方法都不起作用。当我只是从桌面而不是浏览器使用它时,它可以完美运行。 非常感谢您的帮助。
附:请不要告诉我使用其他语言或程序会更容易。我需要用python解决这个问题。
【问题讨论】:
-
从这个问题来看,我想你对 python 中的 web 编程没有经验。您不能将此代码放在文档根目录的 *.py 中并期望它像 *.php 一样运行。
-
您的 Content-* 标头看起来有缺陷。他们应该使用 CR/LF 行尾。你能得到这个脚本正确提供的简单
text/html示例吗?如果不是,请先解决此问题。 -
我有足够的经验知道从 cgi-bin 运行它。我有其他脚本正在运行。这是第一个没有输出我需要的东西。是的,干净的 text/html 可以完美地工作,至少就我测试而言。我不明白为什么我应该使用 CR/LF...
-
@tripleee 他正在设置他想要提供的文件的 MIME 类型,这是正确的,尽管在这里基本上不相关。
标签: python excel browser cgi openpyxl