2010-03-04 93 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