2012-04-25 9 views
3

(それが重要な場合WPF)私は.NETアプリケーションでのMicrosoft Excelのインスタンスを作成していると私はこのように内部に埋め込むいますロード:プログラムによるExcelのインスタンスを作成し、すべてのアドイン

 var excelType = Type.GetTypeFromProgID("Excel.Application"); 
     var excelObj = Activator.CreateInstance(excelType); 
     excelType.InvokeMember("Visible", BindingFlags.SetProperty, null, excelObj, new object[] { true }, ComCulture); 
     var excelHwnd = new IntPtr((int)excelType.InvokeMember("Hwnd", BindingFlags.GetProperty, null, excelObj, new object[0], ComCulture)); 
     var managedWindowHwnd = new WindowInteropHelper(Application.Current.MainWindow).Handle; 
     SetParent(excelHwnd, managedWindowHwnd); 
     MoveWindow(excelHwnd, 0, 0, Convert.ToInt32(Width), Convert.ToInt32(Height), true); 

すべての作品をExcelがインストールされているアドインを読み込まない点を除きます。スタートメニューからExcelを実行すると、アドインが読み込まれます。

アドインの読み込みを有効にするために、Excelにいくつかの引数を指定する必要があると思います。しかし、私はどのように/どのような.../

+0

なぜプロセスを開始しないのですか? – chris6523

+0

さて、このようなExcelの起動と埋め込みを中心に構築された大規模なアプリケーションがあり、変更するのは難しいでしょう。プロセスを起動すると、アドインのロードに役立ちますが、一部のアドインが特定のコマンドでクラッシュすることもあります。私はExcelに強制することができるsqitchまたはいくつかの起動オプションを期待しています.. –

答えて

0

あなたはこれをinteropを使用して手動で行うことができます。Get the excel cell address from a UDFで私の投稿を参照して、Excelオブジェクトの処理を取得してください。アプリケーションを取得したら、application.AddInsとapplication.ComAddInsをループしてアドインを手動で有効にし、インストール済み/接続プロパティを各項目に対してtrueに設定することができます

関連する問題