我正在編寫託管IronPython 1.1的Excel加載項,我想要 將Excel.Application COM對象提供給PythonEngine實例。如何從Excel加載項運行託管的Ironpython 1.1?
我的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
//拋出上述
您是否嘗試過做什麼,你的Python腳本通過C#在做什麼?那樣有用嗎?我知道,你說訪問正常,但我只是想確定。 – Rohit 2009-05-04 16:04:51
我試過了。例如,這行C#打印單元格A4的值: Debug.WriteLine(「C#:」+ \ this.Range [「A4」,missing.Value2.ToString() ); 雖然這種線蟒拋出提到異常: 的Debug.WriteLine( 「Python中:」 + \ sheet.Range [ 「A4」,缺少] .Value2.ToString() ) 其中 '片' 是一個提供給託管蟒蛇引擎的變量。 – Mads 2009-05-05 08:14:12
一些Excel COM方法和屬性可以正常工作(Application.Visible是可以的IIRC),但是大多數都會失敗,並提到異常。我試圖做一個類似的項目針對Word,它似乎工作得很好。我正在運行VS2008,Office2007,Vista SP1。 – Mads 2009-05-05 08:14:19