0

我在 cStringIO 变量中创建了一个 Excel 文件。

我需要打开它并阅读它。xlrd但是要使用该函数打开一个excel文件xlrd.open_workbook(excel_file_name),我需要通过它的文件名来调用它。但在这种情况下,没有文件名,因为它是一个包含 Excel 文件表示形式的 cStrinIO 变量。

如何将 cStringIO 变量转换为可以打开的真实 excel 文件?

谢谢!

4

2 回答 2

2

看起来xlrd.open_workbook()也接受 file_contents 参数,所以可能如下?

xlrd.open_workbook(file_contents=cstringio_var.getvalue())
于 2014-04-16T12:11:15.423 回答
1

您可以使用tempfile.NamedTemporaryFile.

示例(未测试):

with tempfile.NamedTemporaryFile() as f:
    f.write(your_cStringIO_variable.read())
    f.flush()
    something = xlrd.open_workbook(f.name)
于 2014-04-16T11:28:04.923 回答