首页 > 解决方案 > 使用实时 Python 数据更新 Excel 电子表格

问题描述

我对 Python 还是很陌生,主要目标是学习该语言以完全自动化一些流程并使用实时数据更新/填充 Excel 电子表格。有没有办法(例如通过 openpyxl)使用通过 python 包(如 pandas)或通过 BeautifulSoup 抓取的网络提取的数据来更新特定单元格?

我已经有了必要的代码来提取我在 Python 中的项目所需的数据系列,但我完全坚持如何将这些数据链接到 Excel。

import pandas as pd
import pandas_datareader.data as web
import datetime as dt

start = dt.datetime(2000,1,1)
end = dt.datetime.today()

tickers = [
    "PYPL",
    "BABA",
    "SAP"
]

    df = web.DataReader (tickers, 'yahoo', start, end)

print (df.tail(365)['Adj Close'])

标签: pythonexcelopenpyxlreal-time-updates

解决方案


(感谢这是一个老问题)。使用xlOil 可以获得Excel 中的实时数据。xlOil 允许您在 python 中非常轻松地定义 Excel RTD(实时数据)函数。Excel 的 RTD 函数在正常计算周期之外运行,可以将数据推送到工作表上。

你的例子可以写成:

import xloil, datetime as dt, asyncio
import pandas_datareader.data as web

start = dt.datetime(2000,1,1)

@xloil.func
async def pyGetTickers(names:list, fetch_every_secs=10):
    while True:
        yield web.DataReader(
            names, 'yahoo', start, dt.datetime.now())
        await asyncio.sleep(fetch_every_secs)
 

这将显示为工作表函数pyGetTickers


推荐阅读