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
//私は.Valueのを設定することを信じて
あなたのPythonスクリプトは、C#を通じてやっているやってみましたか?それは動作しますか?私は知っている、あなたはアクセスがうまくいくと言ったが、私はただ確実にしたい。 – Rohit
私はそれを試みました。たとえば、このC#の行は、セルA4の値を出力します。 Debug.WriteLine( "C#:" + \ this.Range ["A4"、missing] .Value2.ToString() ); が 'シート' である場合:(.Value2.ToString() が[不足している、 "A4"] + \ sheet.Range "パイソン") Debug.WriteLine: は、Pythonのこのラインは、上述の例外をスローしているがホストされているIronpythonエンジンに提供される変数。 – Mads
いくつかのExcel COMメソッドとプロパティは正常に動作します(Application.VisibleはIIRCです)。 Wordをターゲットにした同様のプロジェクトを試してみましたが、うまくいくようです。私はVS2008、Office2007、Vista SP1を実行しています。 – Mads