2014-06-26 69 views
1

我一直要求創建在任何C++C#一個程序,我的選擇,將使用FIX messaging在數據庫中收到Bid/Offer價格爲各種FX instruments和存儲數據。這部分我知道該怎麼做,但客戶現在告訴我他希望能夠在多臺PC上打開n個Excel工作簿以查看歷史數據以及查看實時數據。郵政實時數據的Excel

我有在Excel 2010中可以看到,您可以直接連接到sql server來檢索數據,但刷新頻率只能達到每分鐘最低。我曾想過創建一個RSS提要,但可能又太慢了。這些傢伙並不擔心延遲,但他們認爲如果延遲超過一秒鐘,他們可能不會太高興。

是我期待甚至可能實現的目標嗎?

回答

1

你可以寫一個VB宏做到這一點,如如下:

Sub Refresh_every_second() 
' 
' Refresh_every_second Macro 
' 

' 
    Selection.QueryTable.Refresh BackgroundQuery:=False 
    Application.OnTime Now + TimeValue("00:00:01"), "Refresh_every_second" 


End Sub 

這個宏刷新數據源,然後遞歸調用自己的每一秒。

注:

  • 刷新所有頁面,使用ActiveWorkbook.RefreshAll
  • 您可能希望引進停止這個宏,如點擊或按鍵的手段。

編輯:要刷新一個特定的數據連接,你可以使用:

ActiveWorkbook.Connections("Data Connection Name").Refresh 
+0

太好了,我會試試看。謝謝喬。你認爲每隔一段時間刷新一次會在個人電腦上產生操作問題嗎? – Elias

+0

功能性強,一切正常;也就是說,用戶界面線程未被阻止。就性能而言,這可能取決於數據集的數量和大小。例如,在我的系統上,通過互聯網刷新16x16數據集大約佔系統CPU的3%。 –

+0

感謝您的幫助Joe Sisk。 – Elias