如何在 Google Sheets API 中使用工作表 ID?

Dan*_*iel 11 google-api google-sheets google-sheets-api

Google Sheets 文档可以包含一些工作表。首先是默认值和'0'。通常对于任何工作表都有这样的地址:

https://docs.google.com/spreadsheets/d/(spreadsheetId)/edit#gid=(sheetId)

spreadsheetIdsheetId

但是在API 文档中没有提到如何使用sheetId. 我只能阅读和编辑给定的默认工作表spreadsheetId

如果在request示例链接中显示的代码中,我添加了sheetId属性,则出现错误:

{ 
    message: 'Invalid JSON payload received. Unknown name "sheetId": Cannot bind query parameter. Field \'sheetId\' could not be found in request message.',
    domain: 'global',
    reason: 'badRequest' 
}
Run Code Online (Sandbox Code Playgroud)

如何访问 Google Sheets API 中默认值以外的其他工作表并读取或更新其中的字段?

The*_*ter 7

至于写在这里range参数可以包括像工作表名称,

Sheet1!A1
Run Code Online (Sandbox Code Playgroud)

如果您必须使用工作表 ID 而不是工作表名称,您可以使用任何使用 的替代端点dataFilter,例如spreadsheets.values.batchUpdateByDataFilter代替spreadsheets.values.batchUpdate。然后,您可以在请求正文中使用 sheetId data.dataFilter.gridRange.sheetId

但是,开发人员元数据是将对象(工作表/范围/列)永久关联到变量的首选方法,其中需要用户对此类对象进行修改。

  • 被否决,因为问题是关于工作表 ID。通过重命名工作表,您可能会在不知不觉中打破基于名称的范围。 (5认同)
  • 很好的答案!而不是使用ID。我喜欢用名称代替 ID 的想法,也适用于 ID。我投了赞成票 (3认同)
  • 无关紧要的答案。 (2认同)