【问题标题】:How to integrate Excel =RTD() function in python如何在python中集成Excel =RTD()函数
【发布时间】:2015-05-13 10:26:00
【问题描述】:

我正在使用来自提供实时天气数据的专有应用程序的实时数据。我从数据中知道的是,它提供了一个导入到 excel 的链接:

=RTD("4cast.wetter",,"city","parameter") 该参数包括温度、湿度、风速、降雨量等。

我尝试阅读 excel 文档中提供的支持链接,但无法获得它是否可以与 Python 一起使用。 http://support.microsoft.com/kb/289150

所以现在我的真正目的是直接在 Python 中使用 Excel 中 RTD 函数接收到的数据。

如 RTD 文档中所述, “调用组件对象模型 (COM) 自动化服务器以实时检索数据” 有没有办法将此 COM 服务器与 Python 集成?

谢谢。

【问题讨论】:

    标签: python excel com real-time


    【解决方案1】:

    从您提供的链接看来,微软似乎为 VBA 提供了一个包装器(但不是为 Python 提供的)。

    如果他提供 Python 的 API,我建议与数据提供者核实。这与 Excel 无关,但它可以让您将数据直接接收到 Python 中。

    另一种选择是使用 RDT 在 Excel 中接收数据,并使用 xlwings 模块 http://xlwings.org/ 之类的东西从 Excel 获取数据到 Python。

    【讨论】:

    • 不幸的是,开发人员没有提供 API,因为它们是完全封闭的源代码,不知何故我的想法是通过 excel 链接。
    • 接近源代码并不意味着他们不提供 API。 API 允许具有封闭源代码的组织与其系统进行通信。如果他们不提供 API,您仍然可以通过 xlwings 从 Excel 获取数据到 Python。
    • @LLaP RTD API。它在 Excel 文档中定义,您应该在使用 Excel 作为客户端时实现服务器。没有什么可以阻止您使用规范以另一种语言实现自己的客户端。
    【解决方案2】:

    它不是直接读取python,而是使用临时文本文件。 我尝试了以下操作,在 excel 中我使用 Workbook_SheetCalculate,将 RTD 数据写入文本文件,在每次数据更改时,有时每秒读取 3 次。

    我通过 Python 将该文本文件读取到带有 Pandas 的 Dataframe,它几乎是实时的。

    【讨论】:

      【解决方案3】:

      您可以使用 PyXLL 将实时数据作为 RTD 函数流式传输到 Excel。

      有关详细信息,请参阅https://www.pyxll.com/docs/userguide/rtd.html,或查看这篇文章,了解如何使用 Python 将实时推文流式传输到 Excel https://www.pyxll.com/blog/a-real-time-twitter-feed-in-excel/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        • 1970-01-01
        • 2021-03-23
        相关资源
        最近更新 更多