【发布时间】:2016-11-14 09:29:03
【问题描述】:
我正在尝试创建要在 Excel 中使用的 Python 类,参考 Python:Win32 上的编程。
目前: Python 脚本 (win32comLibrary.py)
class PythonUtilities:
_public_methods_ = [ "SplitString" ]
_reg_progid_ = "PythonDemos.Utilities"
_reg_clsid_ = "{AF272547-D5BC-4452-852E-3F8746672097}"
def SplitString(self, val, item = None):
import string
if item!=None: item = str(item)
return string.split(str(val), item)
if __name__== "__main__":
print("Registering COM server...")
import win32com.server.register
win32com.server.register.UseCommandLine(PythonUtilities)
Excel VBA
Sub test()
Set PythonUtils = CreateObject("PythonDemos.Utilities")
response = PythonUtils.SplitString("Hello From VB", " ")
For Each Item In response
MsgBox Item
Next Item
End Sub
问题:
(a) 在reponse = ... 行,有一个runtime error '-2147467259 (80004005)': Unexpected Python Error: Traceback (most recent call last): File .....
(b) 当我在 cmd 中输入python win32comLibrary.py --unregister 时,它返回了Registering COM server...Traceback (most recent call last): File "win32comLibrary.py", line 19, in (module) import win32com.server.register ImportError: No module named win32com.server.register
我目前正在使用 anaconda (spyder) 并安装了 pywin32。从 Python 调用 win32com.client 方法似乎不会引发任何错误。
我们将不胜感激。
【问题讨论】:
标签: python excel vba python-3.x anaconda