Xlrd、xlwt 和 xlutils:它们如何协同工作

Xlrd, xlwt, and xlutils: how do they work together

我正在尝试写入现有的 xls 文件,然后遍历同一文件的行,直到找到空白。

我知道如何通过代码执行此操作。

现在我的问题是,xlrd "update" 是否引用了 sheet?或者我是否必须在每次编写时通过打开工作簿功能创建一个新的 xlrd 工作簿对象,然后通过 xlwt 的写入和保存功能(以读取新工作簿)保存到它?

xlrd 会在您调用 open_workbook() 方法 时将您的工作表文件加载到内存中 。调用 open_workbook() 后对工作表文件所做的任何更改都不会 自动反映在内存中的对象中。

如果您查看 Github 上的 xlrd 源代码,尤其是 open_workbook() method of the book.py file,您会发现它在 [=10] 时将工作表的内容加载到内存中=] 方法被调用。这意味着,如果您调用 open_workbook(),然后更改原始文件,内存中的工作簿将不会反映这些更改。

这也是为什么,当你使用xlwt模块时,你必须使用write()方法——当你修改内存中工作表的内容时,更改不会反映在原始文件中, 直到你调用 write().