4

あるデータ プロバイダーは、Excel アドインを開発したいと考えています。これらの要件は次のとおりです。

1) デスクトップにインストールできます。リボンに 1 つのメニューとボタンを追加し、いくつかの特定の機能 (Bloomberg 関数などのリアルタイム データを取得するため) も提供します。

2) アドインは Excel 2007、2010、2013、および 2016 で動作するはずです。

問題は、このアドインを作成するためにどのテクノロジを使用する必要があるかです。ここに私の考えのいくつかがあります:

1) Excel 2007、2010 では動作しないため、Excel 用の JavaScript API は適合しません。

2) VSTO。VSTO アドインが Excel 2013 および 2016 で機能するかどうか知っている人はいますか? ; すべての Excel 2007、2010、2013、および 2016 で機能する 1 つの VSTO アドインを構築することは可能ですか?

3) Excel 用の C API。XLLのビルドにはC API for Excelが使われているようです。C API for Excel でメニューとボタンを作成できるかどうか知っている人はいますか?

4

1 に答える 1

1

ここにいくつかのポイントがあります:

  1. JavaScript API 、それらは Web ベースのアドインであるため、アドインはインターネットなしでは機能しませんが、ソリューションはデータ プロバイダー向けであるように思われるため、クライアントにはインターネットがあると思います。あなたが言ったように、2013年より前のバージョンでは機能しませんでした。ここを参照

  2. VSTO、おそらく最良のオプションですが、Excel 2013 と以前のバージョンの間の MDI/SDI に関連する大きな変更に注意する必要があります。その他の小さな調整が表示される場合があります (画像 idmso、いくつかのイベント..) が、VSTO 2007 は 2016 と互換性があるはずです。VSTO 2016 は存在しません。最新のリリースは 2010 (バージョン 4.0 ランタイム) です。互換性を確認するために、開発時に定期的にテストする必要があります。

  3. メニュー (ドロップダウン リスト) とツールバーを Excel C API 経由で ( と を使用しxlfAddMenuxlfAddToolbar) 追加することはできますが、COM インターフェイス IRibbonExtensibility を必要とするリボン コントロールを追加することはできません。したがって、コントロールを rubbon に追加する唯一の方法は、COM テクノロジ(VSTO のベース) を使用することです。Excel C API は 2007 バージョンから変更されていないため、すべてのバージョンと完全に互換性があります。Excel C API 2010 SDK ( 2013 SDK ではありません。この部分は削除されています) のファイル GENERIC.C で、xlAutoOpen関数を参照してください。また、情報を探すのが非常に困難であることにも注意してください。

私の見解では、2 つの可能性があります。1) VSTO を介してすべてを実装するか、2) Excel C API を介してルーチンを実装し、リボン コントロールにのみ使用される VSTO アドインを介してそれを操作します。最初の解決策(VSTO)をお勧めします。それに関するドキュメントがさらに見つかります。

編集 :

あなたの質問もUDFに関するものであることに気づきました。UDF を Excel に追加するには、VBA 経由、COM オートメーション経由、Excel C API 経由の 3 つの方法があります。UDF の最適なオプションは、間違いなく EXCEL C API ですが、この API を C# で "ラップ" するオープン ソース プロジェクトが存在します。Excel DNA を参照してください。

編集2:

VSTO の代替として、まだ Net では、試してみる価値のあるNetOffice プロジェクトが Codeplexにあり、すべての Excel バージョンをサポートしていると主張しています。UDF の部分に関しては役に立ちませんが、GUI の場合は良い候補のようです。

于 2016-11-08T12:49:21.240 に答える