1

私は、Excel の C-API と COM インターフェイスの組み合わせを使用しているように見える ExcelDNA ライブラリを使用しています。

これらのインターフェイスは、Excel による実装に関してどのように異なりますか? Microsoft サイト ( https://msdn.microsoft.com/en-us/library/office/bb687829.aspx ) から:

" Excel ユーザー インターフェイスのカスタマイズ

Excel の多くのバージョンでは、C API はユーザー インターフェイスのカスタマイズに最適な選択肢ではありませんでした。VBA は、Excel のオブジェクトとイベントへのアクセスが優れています。Excel 2007 で導入されたユーザー インターフェイスは、外観と基盤となるテクノロジの両方で、以前のバージョンとは大きく異なります。マネージ コード リソースを使用して、このインターフェイスを最適にカスタマイズできます。」

COM が C-API よりも Excel の UI の編集に適している理由は何ですか?

4

2 に答える 2

2

C や C++ ではなく、VBA や .NET を使用してユーザー インターフェイスを記述する方が簡単で高速です。

COM インターフェイスは、C-API インターフェイスよりもはるかに豊富な Excel オブジェクトとイベントのセットにアクセスできますが、C-API は COM よりもはるかに優れたパフォーマンスを発揮し、マルチスレッド、非同期、RTD、 COM が提供しないクラスタなど。

ExcelDNA の COM を使用するということは、本質的に遅い COM-INTEROP を使用することを意味することに注意してください。

于 2017-01-05T12:01:49.197 に答える
2

UI コンポーネントを構築し、C# と Excel DNA (または公平を期すために Addin Express) を使用して新機能のプロトタイプを迅速に作成することの容易さと TCO の削減に関して、Charles に同意します。

パフォーマンスが最も重要であると宣言する前に、いくつかの期待値を設定し、関連する計算またはイベントを測定してください。本当にパフォーマンスに敏感なセクションがある場合は、それを分離してから、C# または VB.NET で記述された UI と統合できるマネージ C++ コードを記述します。

また、Excel DNA と VBA に関する Charles のコメントに若干の修正を加えました。彼らは一緒に働きます。いくつかの例は、次の場所にあります。

于 2017-01-24T13:17:30.887 に答える