win32com模块/pythoncom模块的反射分析

8 投票
2 回答
3568 浏览
提问于 2025-04-15 20:00

用pythoncom模块可以做哪些功能,最好的查看方法是什么呢?具体来说,我在用win32com模块处理Excel文件。但是我找不到像其他模块那样的自我检查功能。有没有人能告诉我怎么获取这些信息呢?

2 个回答

2

这个 win32com 模块并不能直接让你操作 Excel 表格。它的作用是帮你获取一个 Excel 表格的 对象。通过这个对象,你就可以用面向对象的方式来操作表格了:

import win32com.client

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

你可以在 Application Object 的文档中找到 excel 所有可用的方法和属性,这些文档是 Excel 对象模型参考 的一部分,来自 MSDN。

举个例子,文档中提到一个 Application 对象有一个 Workbooks 属性

workbooks = excel.Workbooks

这个 Workbooks 集合 有一个 Open 方法

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

现在你可以使用 Workbook 文档 来操作这个工作簿了!

如你所见,使用 win32com 的过程和 MSDN 文档非常相似。:)

5

在 \lib\site-packages\win32com\client 目录下运行 make.py 文件。

当你运行这个文件时,会弹出一个对话框,显示已安装的 COM 对象... 选择 Excel 对象库中的那个,你会看到类似下面的内容:

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

现在,当你在 Excel 上调用 win32com.client.Dispatch 时,返回的对象会有一些属性,可以让你查看它的内部结构(这些属性是你在上面步骤运行时生成的文件中的)。这基本上是在创建一个早绑定的 COM 对象版本。

这个话题在 Mark Hammond 的《Python Programming on Win32》一书中有详细讲解。这是一本老书,但仍然非常有用! http://www.amazon.com/Python-Programming-WIN32-Windows-Programmers/dp/1565926218

撰写回答