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

使用openpyxl给单元格赋值时触发Tuple TypeError错误求助

问题分析与解决

核心问题点

  1. 只读模式导致无法编辑
    你使用read_only=True加载工作簿,该模式仅用于高效读取大文件,完全不支持写入操作,这是无法修改单元格的根本原因。

  2. 工作表获取方式错误
    wb.active返回的是单个激活工作表对象,你使用wb.active[1]会取该工作表的第1行,得到的是包含该行所有单元格的元组(tuple),所以ws实际是元组类型,自然无法执行单元格赋值操作。

修正后的代码

from openpyxl import load_workbook

# 打开Excel文件:移除read_only=True,使用可编辑模式
wb = load_workbook(filename="myFile.xlsm", keep_vba=True, data_only=True)
# 获取第二个工作表:worksheets是列表,索引从0开始
ws = wb.worksheets[1]

# 修改指定单元格值
ws["B3"] = "Germany"

# 保存修改后的文件
wb.save("myFile.xlsm")

补充说明

  • 对于.xlsm宏文件,keep_vba=True可保留宏代码,无需改动。
  • data_only=True会读取单元格的计算结果而非公式,若需保留公式可删除此参数。
  • 若要获取默认激活的工作表,直接使用ws = wb.active即可;明确指定工作表时,用wb.worksheets[索引]更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:30:41