2010-03-04 16 views
6

¿Cuál es la mejor manera de ver qué funciones se pueden realizar con el módulo pythoncom? Específicamente, estaba trabajando con el módulo win32com para operar sobre archivos de Excel. No pude encontrar la introspección como lo hacemos para el resto de los módulos. ¿Puede alguien sugerir por favor cómo puedo recuperar esta información?Introspección del módulo win32com/módulo de pythoncom

Respuesta

2

El módulo win32com no proporciona las funciones para manipular una hoja de cálculo de Excel directamente. Más bien, le proporciona una función para adquirir una hoja de cálculo de Excel objeto. A partir de este objeto, a continuación, puede manipular una hoja de cálculo en una forma orientada a objetos:

import win32com.client 

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

Los métodos y propiedades disponibles para excel se pueden encontrar en la documentación Application Object, parte de la Excel Object Model Reference en MSDN.

Por ejemplo, la documentación indica que un objeto tiene un ApplicationWorkbooks property:

workbooks = excel.Workbooks 

El Workbooks collection tiene un Open method:

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

Ahora puede manipular este libro mediante la Workbook documentation!

Como puede ver, trabajar con win32com sigue bastante de cerca la documentación de MSDN. :)

+0

Esto parece copiado directamente del libro Python win32 de Mark Hammond. – GTM

+0

@GTM: ¿Ah? I * wish * ¡Sabía que había un libro sobre win32 en Python cuando supe esto! :) Te puedo asegurar, no copié esto. –

4

ejecuta el archivo make.py en \ lib \ site-packages \ win32com \ client.

Cuando se ejecuta, un cuadro de diálogo aparece mostrando objetos COM instalados ... elige uno para la biblioteca de Excel Ojbect y obtendrá algo como esto:

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 

Ahora cuando se llama win32com. client.Dispatche en Excel, el objeto que obtenga tendrá atributos que admitan la introspección (del archivo que se crea cuando ejecuta el paso anterior). Básicamente, esto crea una versión de enlace anticipado del objeto COM.

Este tema se trata en detalle en la "Programación de Python en Win32" de Mark Hammond. Es un libro viejo, pero sigue siendo muy útil. http://www.amazon.com/Python-Programming-WIN32-Windows-Programmers/dp/1565926218

+0

No estoy seguro si lo estoy haciendo mal, pero la introspección parece implicar mirar dentro de '_prop_map_get_' y' _prop_map_put_' en el objeto en lugar de los operadores de introspección Pythonic habituales. – Dragon