3

我想使用 Python 和 COM 来处理 Excel 文件中的数据和公式。我已经查看了 python 中的几个模块,但我还没有找到对阅读公式的支持。所以我被迫使用COM。我不知道该怎么称呼它,但是否有类似 python 上可用的所有类和方法的文档,COM for excel。这里和那里有一些示例代码,但我似乎找不到任何我想做的详尽文档。

import win32com
import win32com.client
xl = win32com.client.Dispatch("Excel.application")
xl.__doc__

我以为最后一行会打印 Excel 应用程序的方法或文档列表

sel = xl.Selection

当我在 xl 之后按 TAB 时,上面的 Selection() 方法不显示。我只知道有一个选择方法,因为我是从 pyxll 示例模块中读取它的。所以我认为TAB 菜单中没有包含更多的方法。

sel.Value = "Hello!"
sel.font.bold = true

Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
sel.font.bold = true
NameError: name 'true' is not defined

sel.font.bold = 1
sel.font = "Constantia"

Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
sel.font = "Constantia"
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 570, in  __setattr__
raise AttributeError("Property '%s.%s' can not be set." % (self._username_, attr))
AttributeError: Property '<unknown>.font' can not be set.

所以我在猜测这个,但我想通过适当的文档来学习,所以我知道我可以使用哪些对象/方法。谁能指出我正确的方向?提前致谢!

4

2 回答 2

2

我们最近在这些接口上苦苦挣扎。尝试使用 Microsoft 网站上的帮助页面。

这些示例使用 C# / VB.NET 编写,因此如果您了解其中一种语言会有所帮助……玩得开心!:)

于 2012-05-08T08:42:45.533 回答
0

True区分大小写:sel.font.bold=True有效。

字体可以像这样设置为 Constantia sel.font.Name="Constantia":.

我也不知道任何 PythonCOM 文档,但是该界面几乎可以将 Visual Basic 属性转换为 Python,因此您可以按照 VBA 文档进行操作,在许多情况下,VBA 代码几乎可以逐字运行,当然您必须更改 VBA样板和控制结构到它们的 Python 等价物。

于 2012-05-08T08:30:29.487 回答