如何解决从 excel 运行 COM 对象Python 脚本?
最终我想运行 RTD 服务器并在 excel 中检索数据。但是我在基础知识方面有问题。因此,我向您展示了在 Excel First 中运行 COM 对象的简化问题。
class HelloWorld:
_reg_clsid_ = "{7CC9F362-486D-11D1-BB48-0000E838A65F}"
_reg_desc_ = "Python Test COM Server"
_reg_progid_ = "Python.TestServer"
_public_methods_ = ['Hello']
_public_attrs_ = ['noCalls']
_readonly_attrs_ = ['noCalls']
def __init__(self):
self.noCalls = 0
def Hello(self):
self.noCalls = self.noCalls + 1
return "Hello World"
if __name__=='__main__':
import win32com.server.register
win32com.server.register.UseCommandLine(HelloWorld)
这是基本代码。它工作正常,Python.TestServer
已在 HKEY_CLASSES_ROOT 中注册,我可以通过 Python 运行它。
o=win32com.client.Dispatch("Python.TestServer")
o.Hello()
我也尝试通过 Excel(VB) 运行。
Sub PythonTest()
Set PythonUtils = CreateObject("Python.TestServer")
r = PythonUtils.Hello()
MsgBox r
End Sub
我明白了:
我对错误的假设是:
- 虽然我启用了宏和 ActiveX 控件,但某些内容未在 Excel 中设置或启用。
- 您需要定义一个 Python 解释器吗?
详细说明第二个假设。我不完全知道 COM 对象使用什么 Python 解释器来执行命令,因为我有几个环境。还是注册的时候都编译好了??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。