1

典型的な winform C# アプリケーションで Microsoft Excel をグリッド コントロールとして使用する良いサンプルはありますか。

Excel に似た機能を持つ Excel のようなコントロールやグリッド コントロールなどについて話している多くのスレッドに出くわしました。

Excel を GRID コントロールとして使用しない理由はありません。ビルドにはすべての利点があります (数式エンジン、並べ替え、フィルタリングなど)。

4

2 に答える 2

3

確かに、 Excelを WinForm アプリケーション内のコントロールとしてホストできるので、必要な機能の一部が可能です (大きな注意点があります)。ただし、多くのサードパーティ グリッド ライブラリに見られる残りの機能を接続するには、多くの作業が必要であり、多くの落とし穴があります。

これの主な理由は、Excel がネイティブの Windows アプリケーションであり、.Net フレームワークで実行されていないためです。したがって、すべての操作は腕を伸ばして行う必要があります。アプリケーションをインスタンス化し、シートをインスタンス化し、特定のイベントを試してサブスクライブする必要があります (Excel はこの目的のために設計されていないため、その多くは利用できない可能性があります)。もちろん、すべての COM 参照を適切に管理して、メモリ リークを回避してください。

あなたが言及したグリッド コントロールはすべて、.Net アプリケーション内でホストされるコントロールとしてゼロから構築されているため、人々が望むグリッド スタイルの相互作用のタイプに関するプロパティとイベントを公開します。Excel は単なるグリッドではありません。

ただし、Excel がプログラムで活用すると強力なツールになることを認めるかのように、Microsoft はVSTOを提供しました。VSTOは、.Net を使用して Excel (およびその他のオフィス アプリケーション) を開発できるランタイムです。

于 2012-05-15T21:37:33.257 に答える
0

私の知る限り、Office アプリケーションを埋め込むための .NET コントロールはありません。

以前は、DSOFramerを使用して目的を達成できましたが、その後廃止されました。それでも機能すると思います(よくわかりません)。Web ブラウザー (COM) コントロールは DSOFramer の代替手段ですが、独自の欠点があります。たとえば、組み込みの「Goodies」は使用できません。

以下あくまで個人的な感想です

MS が組み込みの Office アプリケーションをサポートしないとは思えません。その理由は非常に単純です。MS-Office アプリケーションは、「エンド ユーザーを対象とした」製品です。それには個別のライセンスが必要であり、ビジネスの観点からすると、彼らはそれを失いたくないでしょう:) 前述したように、これらは私の個人的な考えにすぎず、MSの見解を反映していません.

于 2012-05-15T21:28:38.767 に答える