将实时数据发布到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