3

Excel アドインの VSTO バージョンで動作するコードがあります

Microsoft.Office.Tools.Excel.ListObject lo = Globals.ThisAddIn.VSTOWorksheet.Controls.AddListObject(r, "lo1");
lo.AutoSetDataBoundColumnHeaders = true;
lo.DataSource = dt; //some DataTable

この API を使用していたのは、宣言型のデータバインディング構文であるためです。また、Excel.Interop API には AutoSetDataBoundColumnHeaders などのメソッドがありませんでした。

Microsoft.Office.Tools.Excel.ListObject をインポートできる場合、Excel DNA 内の VSTO を使用せずに AddListObject を呼び出す Controls コレクションをどのように解決しますか?

コードを破棄する必要がある場合でも、どのような解決策でも問題ありませんが、一般的に、このデータバインディングを実現するために、Excel DNA 内でどの API をいつ使用するかを理解したいと考えています。

4

1 に答える 1

3

VSTO は、Excel オブジェクト モデルの上にいくつかの拡張機能を追加します。私は VSTO の経験がなく、ListObjects のようなものについては、Excel のオブジェクト モデルがどこで終了し、拡張された VSTO ラッパー オブジェクトが開始するかを知ることができません。

境界は基本的にこれです: Microsoft.Office.Interop.Excel は Excel-DNA から使用できます (したがって、これは使用できる ListObject インターフェイスです: http://msdn.microsoft.com/en-us/library/microsoft.office .interop.excel.listobject_members.aspx )。Microsoft.Office.Tools.Excel は VSTO の一部です。

また、VSTO ライブラリを Excel-DNA と一緒に使用できるかどうかもわかりません。問題は、VSTO ライブラリを初期化して接続することです。これは難しい場合があります。

Excel オブジェクト モデルの上に、これらのオブジェクト モデルの拡張機能を自分で再実装してみる価値があるかもしれません。VSTO は、あなたが自分でできなかったことをしているとは思いません。

于 2011-07-07T22:01:15.487 に答える