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

使用gspread操作Google Sheets报错:AttributeError: 'Worksheet'无get_addr_int属性

解决gspread报错:AttributeError: 'Worksheet' object has no attribute 'get_addr_int'

我之前在升级gspread版本后也碰到过一模一样的错误,大概率是你用的gspread版本和参考的代码文档不匹配导致的!

问题根源

在gspread的旧版本(比如v4.x及更早)中,Worksheet对象确实包含get_addr_int方法,同时也支持直接调用worksheet.rowcol_to_a1()来转换行列为A1格式。但从gspread v5.x版本开始,官方把这些单元格地址转换的工具方法统一移到了gspread.utils模块中,Worksheet对象不再自带这些方法,所以直接调用就会触发AttributeError。

具体解决办法

1. 使用新版本的正确调用方式

如果你用的是gspread v5.x及以上版本,需要从utils模块导入并调用方法:

# 先导入utils模块
from gspread import utils

# 转换行列为A1格式(示例:第2行第3列 → C2)
a1_address = utils.rowcol_to_a1(row=2, col=3)
print(a1_address)  # 输出 "C2"

之后你就可以用这个A1地址来操作工作表,比如读取或修改单元格:

# 假设worksheet是你的Worksheet对象
cell_value = worksheet.acell(a1_address).value
worksheet.update(a1_address, "新的内容")

2. 降级gspread版本(不推荐,除非项目依赖旧代码)

如果你的代码大量依赖旧版本的get_addr_int或worksheet.rowcol_to_a1()调用,不想修改代码的话,可以降级到gspread v4.x版本:

pip install gspread==4.0.1

降级后就可以继续使用旧的调用方式:

# 旧版本用法示例
a1_address = worksheet.get_addr_int(2, 3)
# 或者
a1_address = worksheet.rowcol_to_a1(2, 3)

3. 检查代码中的误用

注意不要把utils的方法当成Worksheet对象的属性调用,比如以下写法是错误的:

# 错误写法!
worksheet.utils.rowcol_to_a1(2, 3)

一定要直接调用utils模块下的函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:21:31