2012-03-16 50 views
6

我希望能夠允許用戶在Excel中的單元格中輸入自定義公式,該公式會訂閱由外部.NET應用程序提供的數據。例如,用戶可能會輸入...通過.NET來源的公式將數據導入到Excel電子表格中的適當技術是什麼?

=getCurrentValue("ABC") 

有一個外部.NET(C#)應用程序每分鐘確定一次「ABC」的值。

單元格應該顯示來自外部應用程序的「ABC」的初始值,並在外部應用程序發送新值時進行更新。

在過去,我認爲外部應用程序將是一個DDE服務器,公式將是一個DDE客戶端公式,但DDE顯然已經死亡。用什麼「正確的」技術來做到這一點?

請注意,電子表格需要通過公式提取數據。信息不會進入固定的模板excel文件,而是進入用戶輸入公式的任何電子表格。

感謝,

約翰

+0

FWIW,我認爲問題是很清楚aske d,並發現在非接受的答案中存在的非常高的不相關性完全令人興奮。 – BrainSlugs83 2014-03-03 21:57:39

回答

5

Excel的RTD(實時數據)是替代DDE。它允許您在更新可用時將值推送到單元格。如果提供更新的進程是外部應用程序,則在RTD服務器和外部應用程序之間設置WCF通道應允許您將實時更新提供給Excel。

這裏有一些鏈接:

+0

還有更多他的文章,請參閱http://weblogs.asp.net/kennykerr/pages/My-Articles.aspx上的列表 – quetzalcoatl 2013-09-10 10:59:46

-1

您可以通過Excel阿比Excel表進行通信:

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

+0

雖然你可以考慮CSV文件。大多數主機提供商不允許在那裏的服務器上的Office,所以你可以寫入和CSV文件。 雖然您可以使用Microsoft.Office.Interop.Excel做更多工作,但您甚至可以創建打印區域和圖表 – ydd1987 2012-03-16 20:56:12

+1

excel interop似乎針對自動執行excel任務或將數據推送到excel。例如,它可以在Excel中觸發DDE請求。我已經調整了這個問題,以反映我們希望excel提取數據(儘管一旦excel訂閱,更新將被推回)。 DDE是完美的,但似乎不再推薦。是否有機制通過interop註冊公式/回調/某些東西?如果可以的話,你可以指點我一個例子嗎? – 2012-03-16 21:15:31

+0

是這樣的嗎? oRng = oSheet.get_Range(「C2」,「C6」); oRng.Formula =「= A2&\」\「& B2"; – ydd1987 2012-03-16 21:18:57

相關問題