我正在编写一个托管 IronPython 1.1 的 Excel 加载项,并且我想将 Excel.Application COM 对象提供给 PythonEngine 实例。
我的 C# 可以很好地访问 COM 对象的成员。但是,当我的 IronPython 脚本访问 COM 对象的成员时,我收到“System.ArgumentException:'System.Int32' 类型的对象无法转换为'System.UInt32&' 类型。”
这是我托管 IronPython 1.1 的 C# 代码:
public void ExecuteFile(string path) {
// see if COM object works
Debug.WriteLine(Globals.ThisAddIn.Application.ActiveWindow.Caption);
engine.Globals.Add("excel", Globals.ThisAddIn.Application);
try
{
engine.ExecuteFile(path);
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
}
这是我的 IronPython 测试脚本:
excel.ActiveSheet.Range['A1'].Value2 = 42
// 抛出上面提到的异常