通过文本和文件stream保存openpyxl文件

我将OpenPyXL构build到需要包含excel文件内容的string的应用程序中,以便通过文件stream进行写入。

从我对OpenPyXL源代码的调查来看,它看起来并不像它支持这种输出。 有没有人有修改openpyxl支持这个经验?

或者任何一般的build议/解决方法?

谢谢。

jcollado的答案实际上是有效的,但在openpyxl.writer.excel中也有一个函数(遗憾的是还没有文档logging)叫做“save_virtual_workbook”,它将把你的工作簿作为string返回给工作簿:

from openpyxl.workbook import Workbook from openpyxl.writer.excel import save_virtual_workbook wb = Workbook() print save_virtual_workbook(wb) 

你正在寻找的是由save_virtual_workbook()返回的string

怎么样使用一个StringIO对象来保存文件的内容:

 from openpyxl.workbook import Workbook from StringIO import StringIO output = StringIO() wb = Workbook() wb.save(output) print output.getvalue() 

您正在查找的string是在此示例的最后一行中打印的内容。