Python 将文件内容而不是文件名传递给xlrd模块';s open_工作簿()方法

Python 将文件内容而不是文件名传递给xlrd模块';s open_工作簿()方法,python,xlrd,Python,Xlrd,是否有方法将Excel文件的内容而不是文件名/引用传递给xlrd模块的open_工作簿()函数?为此,我一直在尝试使用“file_contents”参数,但到目前为止还没有成功。谢谢。在大多数需要打开文件的地方,对象也可以工作 您只需从文件数据创建一个StringIO对象,并将该对象作为文件传递给您的函数。@Ber的评论是正确的。您需要使用StringIO对象的getvalue()方法,并在函数调用中将其传递给file_content参数 f = StringIO.StringIO(conten

是否有方法将Excel文件的内容而不是文件名/引用传递给xlrd模块的open_工作簿()函数?为此,我一直在尝试使用“file_contents”参数,但到目前为止还没有成功。谢谢。

在大多数需要打开文件的地方,对象也可以工作


您只需从文件数据创建一个StringIO对象,并将该对象作为文件传递给您的函数。

@Ber的评论是正确的。您需要使用StringIO对象的getvalue()方法,并在函数调用中将其传递给file_content参数

f = StringIO.StringIO(content)
book = xlrd.open_workbook(file_contents = f.getvalue() )

谢谢你,伯伯。我对它进行了更多的检查,结果发现,我认为原始的二进制excel文件数据实际上是一个包含excel文件数据的FieldStorage对象,因此导致生成异常。我想我已经把它整理好了。为什么-1?打开工作簿允许文件内容参数。请查看documentarion或源代码:提示您的下一个问题:“到目前为止还没有任何成功”并没有太大帮助。。。尝试显示代码以尽最大努力,并显示错误消息和回溯