gpt4 book ai didi

python - 如何在 Python 中导入 COM 对象命名空间/枚举?

转载 作者:太空狗 更新时间:2023-10-29 20:48:33 27 4
gpt4 key购买 nike

我是编程/python 的新手,所以如果能得到任何帮助,我将不胜感激。我想通过 COM 使用 Excel 将 excel 文件保存为特定格式。这是代码:

import win32com.client as win32 

def excel():
app = 'Excel'
x1 = win32.gencache.EnsureDispatch('%s.Application' % app)
ss = x1.Workbooks.Add()
sh = ss.ActiveSheet
x1.Visible = True
sh.Cells(1,1).Value = 'test write'
ss.SaveAs(Filename="temp.xls", FileFormat=56)
x1.Application.Quit()

if __name__=='__main__':
excel()

我的问题是如果我没有明确知道它的代码,我该如何指定文件格式?浏览文档,我找到了关于 FileFormat 对象的引用。我不知道如何访问 XlFileFormat object并以我可以找到它的枚举值的方式导入它。

谢谢!

最佳答案

这个问题有点陈旧,但对于那些从 Google 访问此页面的人(就像我一样),我的解决方案是通过 win32com.client.constants 对象而不是应用程序对象访问常量本身as suggested by Eric .这使您可以像在 VBE 中一样使用枚举常量:

>>> import win32com.client
>>> xl = win32com.client.gencache.EnsureDispatch('Excel.Application')
>>> C = win32com.client.constants
>>> C.xlWorkbookNormal
-4143
>>> C.xlCSV
6
>>> C.xlErrValue
2015
>>> C.xlThemeColorAccent1
5

此外,除非您手动运行 makepy 实用程序,否则如果使用常规 win32com.client.Dispatch(..) 初始化应用程序,常量可能不可用> 方法,这是我遇到的另一个问题。使用 win32com.client.gencache.EnsureDispatch(..)(如提问者所做的那样)在需要时检查并在运行时生成 Python 绑定(bind)。

我找到了 this ActiveState page有帮助。

关于python - 如何在 Python 中导入 COM 对象命名空间/枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1646230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com