您好 来自股票经纪人的我的申请有一个名为“Start excelfeed”的按钮,它打开一个excel文件,然后实时更新收到的价格。我希望将这些价格提取到我的应用程序(Java)中,但经过多次尝试使用jxl和poi我发现它只提取上次保存excel文件时发生的值。有没有可能实时提取这些价格的方法?我不确定他们使用哪种方法来提供excel文件,除了他们的应用程序是用C#编写的。
答案 0 :(得分:1)
您可以通过按Alt + F11查看“启动excelfeed”按钮后面的VBA代码...然后您可以检查excel宏如何点击数据源并尝试在Java中调整
<强> [编辑] 强> @Zico抱歉,我说错了。在这种情况下,我会尝试通过像Java489041建议的Java机器人类自动化它,或者你可以启动wireshark并尝试窥探网络流量
答案 1 :(得分:1)
他们正在使用DDE技术,您应该使用Excel自动化将数据从Excel中提取到您的应用中。
答案 2 :(得分:0)
在过去,我们使用DDE链接。有可能是你的股票经纪人插件使用恰恰相反。
从java使用DDE的机会相当渺茫(接近于零)因为它是特定于Windows的。但是,可能还有其他方法(如COM组件或TCP / IP连接)。我建议你从像Excelfeed这样的股票经纪人来源获取价值,而不是通过Excel。
当然,问题在于您无法获得Excel插件供应商的帮助。如果事情就像他们8年前一样,那么他们在购买Excel插件时会花很多钱,而且真的不想帮助你编写程序:)
答案 3 :(得分:0)
最坏的情况是,您可以使用Java Robot类创建Excel电子表格,将Excel电子表格另存为CSV文件,然后从Java程序中读取CSV文件。
答案 4 :(得分:0)
您可以使用Obba等解决方案执行此操作。 Obba允许直接从Excel访问运行“Obba Server”的Java虚拟机。
对于您的问题,您必须从电子表格“创建”您的应用程序(加载jar,创建代表您的应用程序的对象 - 例如在单独的线程中启动它)。然后,您可以从Excel中提供应用程序... - 在这种情况下,Excel将扩展您的应用程序的“控制程序”。但是,如果您手动启动Obba Server进程,则关闭并重新打开Excel时,该进程将继续运行。