python - 使用实时 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'])
解决方案
(感谢这是一个老问题)。使用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
。
推荐阅读
- r - mutate_impl(.data, dots) 评估错误:找不到对象
- javascript - 如何在反应中将输入值设置为null
- python - 如何使用自定义版本的 Python 使用 Cython 进行编译
- python - 阅读文件并找出一组独特的单词
- objective-c - 比较 int 和 id 时,Objective C isEqual 不评估
- php - wp sanitize_callback 和静态方法
- f# - 键入记录字段以保存具有类型参数的函数
- c++ - 在 for 循环中处理复杂的 send recv 消息
- android - Android Studio 中的导航抽屉模板未在 xml 文件中显示任何设计
- inno-setup - 从 IWinHttpRequest 返回的二进制数据已更改,无法将 Variant 转换为字节数组