C# 将实时数据发布到Excel
我被要求在我选择的C# 将实时数据发布到Excel,c#,c++,excel,C#,C++,Excel,我被要求在我选择的C++或C#中创建一个程序,该程序将使用FIX messaging接收各种FX工具的Bid/Offer价格,并将数据存储在数据库中。这部分我知道怎么做,但客户现在告诉我,他希望能够在多台PC上打开n个excel工作簿,以查看历史数据,并在数据进入时查看实时数据 我在Excel2010中看到,您可以直接连接到sql server来检索数据,但刷新频率只能降低到每分钟一次。我曾想过创建一个RSS提要,但这可能太慢了。这些人并不太担心延迟,但我认为如果延迟超过一秒,他们可能不会太高兴
C++
或C#
中创建一个程序,该程序将使用FIX messaging
接收各种FX工具的Bid/Offer
价格,并将数据存储在数据库中。这部分我知道怎么做,但客户现在告诉我,他希望能够在多台PC上打开n个excel工作簿,以查看历史数据,并在数据进入时查看实时数据
我在Excel2010中看到,您可以直接连接到sql server来检索数据,但刷新频率只能降低到每分钟一次。我曾想过创建一个RSS提要,但这可能太慢了。这些人并不太担心延迟,但我认为如果延迟超过一秒,他们可能不会太高兴
我希望实现的是可能的吗?您可以编写一个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
太好了,我要试一试。谢谢你,乔。你认为每秒钟刷新一次会在个人电脑上产生操作问题吗?从功能上看,一切都是可操作的;也就是说,用户界面线程没有被阻塞。就性能而言,这可能取决于数据集的数量和大小。例如,在我的系统上,通过Internet刷新16x16数据集占用了大约3%的系统CPU。感谢您的帮助Joe Sisk。