在Excel中访问数据 - 来自python的Reuter

时间:2013-04-10 15:08:02

标签: python excel com win32com

我正在使用Excel中的Reuters来检索市场数据。对于任务自动化,我目前使用VBA,但现在我想切换到python。包pyxll没有多大帮助,因为原理与VBA相同(我需要在Excel中并单击RUN按钮...) 所以我正在考虑使用win32com从外部使用COM对象访问Excel。但是,当我这样做时:

from win32com.client import Dispatch 
xlApp = Dispatch("Excel.Application")

此代码打开一个新的Excel实例,其中没有Reuter加载项(因此我无法使用Reuter函数来检索数据)。我不知道如何从python访问Excel-with-Reuter实例? 我已经看了Com Explorer来探索该服务,我没有看到任何其他服务而不是Excel

4 个答案:

答案 0 :(得分:3)

试试这个 -

import os
from win32com.client import GetObject

os.startfile(r'C:\path\to\ReutersExcel.exe')
xlApp = GetObject(None, 'Excel.Application')

答案 1 :(得分:2)

如果您使用Excel访问Thomson Reuters Dataworks Enterprise(以前的Datastream),那么请查看pydatastream(https://github.com/vfilimonov/pydatastream) - 它允许您直接将数据传输到python用pandas.DataFrame格式。

答案 2 :(得分:1)

如果您使用的是Excel VBA,则结果不正确的可能性非常大(您也很难编写更多代码来处理可能导致问题的状态)。

根据我的经验,我们应该直接从Feed中使用数据并对其进行操作。它很容易维护和可靠(绝对我在python中这样做)。

我正在使用PyRFA来使用我的P2PS中的数据并对其进行操作(此API非常好,因为它目前是免费的!它提供了消费者和提供者的能力)。以下是此API的更多详细信息:

http://www.devcartel.com/pyrfa

您需要做的是联系他们的支持团队以获取更多详细信息并开始繁荣编码!

干杯, 迈克尔

答案 3 :(得分:1)

您可以使用以下代码启动加载项: 在选择自动登录之前先制作一下。

Import win32com.client
xl = win32com.client.DispatchEx("Excel.Application")