You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用xlwings将股票价格写入Excel指定单元格且避免覆盖?

问题修复:股票股价写入Excel避免覆盖并对应指定单元格

问题原因

你的代码每次循环都将单个股价值写入B1:B3整个区域,导致后续获取的股价会完全覆盖之前的内容;同时没有区分GGAL和BMA对应的目标单元格(B2、B3),所以无法实现预期效果。

修复方案

核心是给每个股票指定对应的单个单元格写入,而不是覆盖整个区域。可以通过两种方式实现:

方式1:通过索引对应单元格位置

利用enumerate获取股票列表的索引,计算对应的目标行号(GGAL是第0个元素,对应B2;BMA是第1个元素,对应B3):

import xlwings as xw
import time
import yfinance as yf

wb = xw.Book('EPGB V3.3.2 FE-AB - Python.xlsb')
sht1 = wb.sheets['Dolar']
while True:
    try:
        tickers = ['GGAL','BMA']
        # 枚举股票和对应的索引
        for idx, ticker in enumerate(tickers):
            ticker_yahoo = yf.Ticker(ticker)
            data = ticker_yahoo.history()
            last_quote = data['Close'].iloc[-1]
            last_quote_decimals = "{:.2f}".format(last_quote)
            print(ticker, last_quote_decimals)
            # 索引0对应B2,索引1对应B3,行号为索引+2
            sht1.range(f'B{idx+2}').value = last_quote_decimals
        time.sleep(10)
    except Exception as e:
        # 输出具体错误信息,便于调试
        print(f'Hubo un error al actualizar excel: {str(e)}')

方式2:用字典映射股票与目标单元格

直接建立股票代码和目标单元格的映射关系,可读性更强,后续新增股票也方便扩展:

import xlwings as xw
import time
import yfinance as yf

wb = xw.Book('EPGB V3.3.2 FE-AB - Python.xlsb')
sht1 = wb.sheets['Dolar']
# 定义股票代码到目标单元格的映射
ticker_to_cell = {
    'GGAL': 'B2',
    'BMA': 'B3'
}
while True:
    try:
        for ticker, target_cell in ticker_to_cell.items():
            ticker_yahoo = yf.Ticker(ticker)
            data = ticker_yahoo.history()
            last_quote = data['Close'].iloc[-1]
            last_quote_decimals = "{:.2f}".format(last_quote)
            print(ticker, last_quote_decimals)
            # 写入对应单元格
            sht1.range(target_cell).value = last_quote_decimals
        time.sleep(10)
    except Exception as e:
        print(f'Hubo un error al actualizar excel: {str(e)}')

关键修改点

  • 替换了原代码中sht1.range('B1:B3').value = last_quote_decimals的整区域写入操作,改为单个单元格写入
  • 优化异常处理,捕获并输出具体错误信息,方便排查问题
  • 两种方式都能精准将GGAL写入B2、BMA写入B3,且不会互相覆盖

内容的提问来源于stack exchange,提问作者Martin Dvorkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:25:33