gpt4 book ai didi

python - 在 Google App Engine for Python 中使用 xlsxwriter

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:19 24 4
gpt4 key购买 nike

我想知道是否有人知道如何在 Google App Engine for Python 中使用 xlsxwriter。该文档仅显示如何打开、写入和保存到文件。我已经查看了将 StringIO 用于其他 Excel 库的解决方法,但它们似乎无法转移到 xlsxwriter。主要原因似乎是在其他库中您可以提供一个 StringIO 缓冲区,而在 xlsxwriter 中您只能提供一个字符串作为文件名。

我有一个使用 pyexcelerator 的基本解决方案,但 xlsxwriter 功能丰富得多,如果可能的话,我想使用它。

最佳答案

UPD:issue由 xlsxwriter 作者修复(自 0.4.8 版本开始工作)。查看example .


根据我在 this thread 中的回答,这里是应该在 GAE 上工作的东西:

from xlsxwriter.workbook import Workbook

class IndexHandler(webapp2.RequestHandler):
def get(self):
book = Workbook(self.response.out)
sheet = book.add_worksheet('test')
sheet.write(0, 0, 'Hello, world!')
book.close()

# construct response
self.response.headers['Content-Type'] = 'application/ms-excel'
self.response.headers['Content-Transfer-Encoding'] = 'Binary'
self.response.headers['Content-disposition'] = 'attachment; filename="workbook.xls"'

但是,它会抛出一个错误:

NotImplementedError: Only tempfile.TemporaryFile is available for use

因为 xlsxwriter 尝试使用 tempfile.tempdir 写入临时目录,参见 source _store_workbook 方法。而且,GAE 不允许在项目中使用 tempfile 模块:参见 source ,因为如您所知,无法访问那里的磁盘。

所以,这里出现了一个“恶性循环”。可能您应该考虑修改 _store_workbook 方法以使其完全在内存中工作。或者,您可以 mock tempfile.tempdir 即时调用并将其替换为您自己的内存中对象。

另一种选择是在 xlsxwriter 上创建问题 issue tracker ,我敢打赌@jmcnamara 在这个问题上有一些好主意。

希望对您有所帮助。

关于python - 在 Google App Engine for Python 中使用 xlsxwriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com