使用Python访问打开的Excel工作簿

时间:2018-02-04 10:29:50

标签: python excel openpyxl python-module win32com

如何使用win32com模块找到打开的Excel工作簿?我只想读取一个尚未保存的Excel工作簿中的单元格。或者我可以参考哪些文件?

1 个答案:

答案 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.ActiveWorkbookNone,那么您的代码正在与不同的Excel实例通话而没有打开工作簿。

然后,要从表单中获取值,您当然必须知道您想要的单元格:

>>> xlApp.ActiveWorkbook.ActiveSheet.Range("I3").Value
'C.2.16'

您的范围和价值当然会有所不同。

这一点在Hammond& amp;的第9章中已经非常清楚地描述了。 Robinson: Win32上的Python编程,O' Reilly,2000,ISBN 1-56592-621-8。