2010-03-04 83 views
6

什麼是最好的方式來看看可以使用pythoncom模塊執行的所有功能? 具體來說,我正在使用win32com模塊來操作excel文件。與其他模塊一樣,我無法找到它的反思。 任何人都可以請建議如何檢索這些信息?Win32com模塊/ pythoncom模塊的自省

回答

2

win32com模塊不提供直接操作Excel電子表格的功能。相反,它提供了一個功能來獲取Excel電子表格對象。從這個對象,你可以然後操縱在面向對象的方式電子表格:

import win32com.client 

excel = win32com.client.Dispatch("Excel.Application") 

的方法和適用於excel性能可以Application Object文檔中找到,該Excel Object Model Reference在MSDN的一部分。

例如,文件表明,一個Application對象具有Workbooks property

workbooks = excel.Workbooks 

Workbooks collection有一個Open method

workbook = workbooks.Open("C:\\something.xls") 

您現在可以使用Workbook documentation操縱該工作簿!

正如您所看到的,使用win32com的工作非常接近MSDN文檔。 :)

+0

這看起來似乎直接從Mark Hammond的Python win32書中複製過來。 – GTM 2010-03-11 18:54:28

+0

@GTM:哦?我*希望*當我知道這件事時,我知道有關於Python的win32的書! :)我可以向你保證,我沒有複製這個。 – 2010-03-12 23:14:44

4

運行\ lib \ site-packages \ win32com \ client中的make.py文件。

當你運行它,一個對話框出現顯示已安裝的COM對象...選擇一個爲Excel Ojbect庫,你會得到這樣的事情:

c:\Python26\Lib\site-packages\win32com\client>makepy.py 
Generating to C:\Python26\lib\site-packages\win32com\gen_py\00020813-0000-0000-C 
000-000000000046x9x1x0.py 
Building definitions from type library... 
Generating... 
Importing module 

現在當你調用win32com。客戶端.Dispatch在Excel上,您獲取的對象將具有支持反省的屬性(來自在運行上述步驟時創建的文件)。這基本上是創建COM對象的早期版本。

此主題在Mark Hammond的「Win32上的Python編程」中有詳細介紹。這是一本舊書,但仍然非常有用! http://www.amazon.com/Python-Programming-WIN32-Windows-Programmers/dp/1565926218

+0

不知道我是否做錯了,但內省似乎涉及在對象中查找_prop_map_get_和_prop_map_put_而不是通常的Pythonic內省運算符。 – Dragon 2016-06-15 11:41:26