【发布时间】:2015-03-19 11:04:39
【问题描述】:
我可以将 StringIO 对象传递给 pd.to_csv() 就好了:
io = StringIO.StringIO()
pd.DataFrame().to_csv(io)
但是在使用 excel writer 时,我遇到了很多麻烦。
io = StringIO.StringIO()
writer = pd.ExcelWriter(io)
pd.DataFrame().to_excel(writer,"sheet name")
writer.save()
返回一个
AttributeError: StringIO instance has no attribute 'rfind'
我正在尝试创建一个ExcelWriter 对象而不调用pd.ExcelWriter(),但我遇到了一些麻烦。这是我迄今为止尝试过的:
from xlsxwriter.workbook import Workbook
writer = Workbook(io)
pd.DataFrame().to_excel(writer,"sheet name")
writer.save()
但现在我收到了AttributeError: 'Workbook' object has no attribute 'write_cells'
如何将 excel 格式的 pandas 数据框保存到 StringIO 对象?
【问题讨论】:
-
我不确定你能做到,至少不容易。
to_excel的参数是 Excel 文件的路径,而不是实际的文件对象。为什么还要在内存中创建 Excel 文件的表示形式? -
使用 Flask 制作可下载的报告。
-
在 Python 3 中,您应该使用
io.BytesIO,因为写入 Excel 文件的输出是一系列字节,而不是(unicode)字符串。
标签: python excel pandas stringio xlsxwriter