如何使用win32com
模块找到打开的Excel工作簿?我只想读取一个尚未保存的Excel工作簿中的单元格。或者我可以参考哪些文件?
答案 0 :(得分:3)
你可以这样做
>>> from win32com.client import Dispatch
>>> xlApp = Dispatch("Excel.Application")
此时,COM将连接到正在运行的Excel副本(如果有),或者如果没有则启动新的副本。您显然希望连接到正在运行的版本。为了确保您的Python代码与Excel的同一个实例进行通信,请将其隐藏并取消隐藏几次:
>>> xlApp.Visible=1
>>> xlApp.Visible=0
>>> xlApp.Visible=1
您的代码正在与之交谈的Excel实例应对此作出反应。然后检查它是否是您想要的工作簿。如果这是未保存的工作簿,则通常会使用Book1
这样的名称。
>>> xlApp.ActiveWorkbook.Name
'Book1'
如果这导致错误,因为xlApp.ActiveWorkbook
为None
,那么您的代码正在与不同的Excel实例通话而没有打开工作簿。
然后,要从表单中获取值,您当然必须知道您想要的单元格:
>>> xlApp.ActiveWorkbook.ActiveSheet.Range("I3").Value
'C.2.16'
您的范围和价值当然会有所不同。
这一点在Hammond& amp;的第9章中已经非常清楚地描述了。 Robinson: Win32上的Python编程,O' Reilly,2000,ISBN 1-56592-621-8。