使用Google Sheets API如何转义与单元格引用重名的工作表名称
问题原因说明
你对问题的判断是正确的,该现象是Google Sheets A1表示法的原生设计规则,并非未知bug:当传入的range参数取值和单元格引用格式匹配时,API会默认将其解析为当前默认工作表的对应单元格,而非同名工作表。你之前请求返回空数据,本质是API读取了默认工作表的H7单元格,该单元格无内容所以返回空列表,而非请求了名为H7的工作表。
解决方案
不需要修改工作表名称,只需按照A1表示法的转义规则,用单引号包裹工作表名称即可完成转义,正常读取对应工作表内容。如果需要指定读取工作表的特定区域,在包裹后的表名后追加!起始单元格:结束单元格即可。
修正后的代码示例
from googleapiclient.discovery import build from google.oauth2 import service_account service = build('sheets', 'v4', credentials=credentials) sheet = service.spreadsheets() # 用单引号包裹工作表名完成转义,读取整张工作表 result = sheet.values().get(spreadsheetId=spreadsheet_id, range="'H7'").execute() values = result.get('values', [])
指定读取该工作表特定区域的写法:
# 示例:读取H7工作表的A1到C10区域 result = sheet.values().get(spreadsheetId=spreadsheet_id, range="'H7'!A1:C10").execute()
内容的提问来源于stack exchange,提问作者GSwart
相关产品推荐
相关产品推荐

