-2

RefreshExcel アドインのボタン/メソッドは、外部の winform アプリケーションを介して呼び出す必要があります。ここに私がいるところがあります:

private Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
public FormMain()
{
InitializeComponent();
RefreshExcelSheet(@C:\a.xls");
} 

private bool RefreshExcelSheet(string path)
        {
           using (var wb = excel.Workbooks.Open(path).WithComCleanup())

[更新] ボタンをクリックするか、単にそのイベントを呼び出すにはどうすればよいですか?

私はこれらの記事を見ていましたが、それらは VBA を使用しています。Winform アプリでスプレッドシートを開いてボタンをクリックする必要があります:
Accessing a VSTO application-addin types from VBA (Excel)
Expose VSTO functions to VBA w/o local admin

4

2 に答える 2

1

この問題を解決する最も簡単な方法は、com 呼び出し可能ラッパー オブジェクト (CCW) を作成して、既存のカスタム .net メソッドを COM メソッドとして公開することです。VSTO は、COM オートメーション サーバーを公開する簡単な方法を提供します。

http://blogs.msdn.com/b/andreww/archive/2007/01/15/vsto-add-ins-comaddins-and-requestcomaddinautomationservice.aspx

OP による編集: Andrew Whitechapel が記事を更新しましたが、うまくいきません。COM 相互運用に登録してもStandardOleMarshalObject、この記事で説明されているのと同じエラー メッセージが表示されます。標準から派生する必要がありますolemarshalobject.asp

于 2012-06-01T06:09:13.853 に答える