将实时数据发布到Excel
我被要求用C++
或C#
创build一个程序,我的select是使用FIX messaging
接收各种FX instruments
Bid/Offer
,并将数据存储在数据库中。 这部分我知道怎么做,但客户现在告诉我,他希望能够在多台PC上打开n个Excel工作簿,查看历史数据,并查看实时数据。
我已经在Excel 2010中看到,你可以直接连接到一个sql服务器来检索数据,但刷新频率只能达到每分钟一样低。 我曾经想过创build一个RSS源,但是可能又太慢了。 这些人对延迟并不是很在意,但是我认为如果延迟时间超过一秒,他们可能不会太高兴。
是我期待甚至可能实现的?
你可以写一个VBmacros来完成这个任务,例如:
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
这个macros刷新数据源,然后每秒recursion地调用它自己。
注意:
- 要刷新所有页面,请使用
ActiveWorkbook.RefreshAll
- 您可能希望引入停止此macros的方法,如单击或按键。
编辑:要刷新特定的数据连接,您可以使用:
ActiveWorkbook.Connections("Data Connection Name").Refresh