将文件内容而非文件名传递给xlrd模块的open_workbook()方法

5 投票
2 回答
2303 浏览
提问于 2025-04-17 14:19

有没有办法把一个Excel文件的内容直接传给xlrd模块的open_workbook()函数,而不是传文件名或文件路径呢?我试过用“file_contents”这个参数来实现,但到现在为止都没有成功。谢谢。

2 个回答

2

@Ber的评论是对的。你需要使用StringIO对象的getvalue()方法,然后把这个值传递给函数调用中的file_content参数。

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

在很多需要打开文件的地方,使用一个 StringIO 对象也能达到同样的效果。

你只需要从文件数据创建一个 StringIO 对象,然后把这个对象当作文件传给你的函数就可以了。

撰写回答