Excel でプラグインとしてロードできる .NET (C#) で DLL を作成しています。DLL は、外部アプリケーションのデータベースから特定の値を検索するために、Excel で数式として使用できる多くの関数を提供します。
これらの数式関数ごとに、DLL はデータベースにアクセスする必要があるため、データベース呼び出しが多すぎます。たとえば、式 1 が 10 個のセルで使用され、式 2 が 20 個のセルで使用されている場合、データベースへの呼び出しは 30 回になります。
データベースへの数式ごとに 1 回の呼び出しを行う方法はありますか? 実装のアイデアはありますか?
ありがとう。
編集:
基本的に、Excel と特定のサードパーティの会計ソフトウェアを使用するすべてのユーザーが使用できる汎用 DLL (Excel プラグイン) を作成しようとしています。ユーザーが Excel に挿入する各数式は、サード パーティのアプリ データベースにクエリを実行し、渡されたパラメーターに応じて特定の値を返します。
たとえば、ユーザーは数式を使用して特定の元帳の元帳残高を照会したり、別の数式を使用して SKU の在庫残高を照会したりできます。元帳ベースの数式、SKU ベースの数式など、さまざまなカテゴリの数式があります。ユーザーは、第 1 四半期と第 2 四半期の元帳残高を別々の列に表示するなど、並べて比較レポートを設計できます。
このプラグインは、ユーザーが Excel で独自のレポートをデザインし、必要に応じて書式設定し、会計ソフトウェアから必要なセルに値を取り込むことができるレポート デザイナー (ウィザードなし、数式ベースのみ) のように機能することを目的としています。
ただし、毎回データベースから読み取って各数式を評価するのではなく、最初に「数式実行計画」を設計したかったので、データベースへの複数の呼び出しを単一の数式の単一の呼び出しにまとめることができました。ユーザーが Excel シートのその数式のすべてのインスタンスで指定したパラメーター。
そうしないと、Excel シートが数式を評価するのに非常に長い時間がかかり、実用的ではなくなります。レポートには、平均で約 100 の数式が含まれていると予想しています。