2012-03-16 6 views
6

外部の.NETアプリケーションが提供するデータを購読するExcelのセルにカスタム式を入力できるようにしたいと考えています。たとえば、ユーザーが入力する可能性があります。.NETソースの数式を使用してExcelスプレッドシートにデータをプルする適切なテクノロジは何ですか?

=getCurrentValue("ABC") 

毎分 "ABC"の値を決定する外部.NET(C#)アプリケーションがあります。

外部アプリケーションから新しい値が送信されると、セルには外部アプリケーションからの初期値 "ABC"が表示され、更新されます。

これまでは、外部アプリケーションはDDEサーバーであり、数式はDDEクライアント式でしたが、DDEは明らかに死んでいると思います。これを行うために使用する「正しい」技術とは何ですか?

スプレッドシートは、数式を使用してデータをプルする必要があることに注意してください。情報は固定テンプレートのExcelファイルではなく、ユーザーが数式を入力するスプレッドシートに入ります。あなたはExcelのAPIを使用してExcelシートとの通信が可能

おかげで、

ジョン

+0

FWIW、私は質問がアスケ非常に明確だと思いましたそして、受け入れられない答えに存在する異常な高レベルの無関係が完全に心を吹き飛ばしていることを発見しました。 – BrainSlugs83

答えて

5

エクセルRTD(リアルタイムデータ)DDEの代替です。更新が利用可能なときにいつでもセルに値をプッシュできます。アップデートを提供するプロセスが外部アプリケーションの場合、RTDサーバーと外部アプリケーションの間にWCFチャネルを設定すると、リアルタイム更新をExcelに送ることができます。ここで

は、いくつかのリンクです:

+0

彼の記事はもっとあります。http://weblogs.asp.net/kennykerr/pages/My-Articles.aspxのリストをご覧ください – quetzalcoatl

-1

new Microsoft.Office.Interop.Excel.Application();

+0

あなたはCSVファイルを考えることもできます。ほとんどのhostingprovidersはサーバーにOfficeを許可しないので、CSVファイルに書き込むことができます。 Microsoft.Office.Interop.Excelでさらに多くのことを行うことができますが、印刷領域とチャートを作成することもできます – ydd1987

+1

Excelの相互運用機能は、Excelタスクを自動化したり、Excelにデータをプッシュすることを目的としています。たとえば、ExcelでDDE要求をトリガーすることができます。私は、データを引き出すことが賢明であることを反映するように質問を調整しました(ただし、更新は一度加入者に優遇されます)。 DDEは完璧ですが、もはや推奨されていないようです。 interopを介して数式/コールバック/何かを登録するメカニズムはありますか?もしそうなら、私に例を教えてもらえますか? –

+0

これは何か?oRng = oSheet.get_Range( "C2"、 "C6"); oRng.Formula = "= A2&\" \ "& B2"; – ydd1987

関連する問題