如何在没有应用程序脚本的情况下从 public sheet 获取所有 google sheet 选项卡名称

How to get all google sheet tab name from a public sheet without app script

我能够通过这种方式解析来自 https://spreadsheets.google.com/feeds/list/1AtYF5g2_A3AiAhejVj595bDLxO1zoGq7PNGjbdV9U8Q/od6/public/values?alt=json 的 JSON 数据。

是否有任何类似的方法来获取所有 sheet 选项卡名称?

您的端点似乎用于表格 API v3。但是 Google Sheets v3 API 将于 2021 年 6 月 8 日关闭。Ref 所以我想建议使用 Sheets API v4.

当Spreadsheet公开分享时,Spreadsheet的信息可以通过SheetsAPIv4的“spreadsheets.get”方法获取。但是,在当前阶段,要使用 Sheets API,需要使用 API 键。不使用API键时,会出现The request is missing a valid API key.这样的错误。所以请注意这一点。

当您检索 API 密钥时,您可以通过以下端点检索公开共享的 Spreadsheet 的 sheet 名称。

端点:

https://sheets.googleapis.com/v4/spreadsheets/1AtYF5g2_A3AiAhejVj595bDLxO1zoGq7PNGjbdV9U8Q?fields=sheets(properties(title%2CsheetId))&key={your API key}
  • 在这种情况下,您也可以使用浏览器访问上述端点,因为 GET 方法。

结果:

请求上述端点时,获取以下值。

{
  "sheets": [
    {
      "properties": {
        "sheetId": 0,
        "title": "Sheet1"
      }
    },
    {
      "properties": {
        "sheetId": 12345,
        "title": "Sheet2"
      }
    },
    ,
    ,
    ,
  ]
}

参考:

只需使用字段受限的 Google Drive API v4 端点: https://sheets.googleapis.com/v4/spreadsheets/{YOUR_SPREADSHEET_ID}?fields=properties(title)&key={YOUR_API_KEY}

这些字段将答案限制为您想要的内容,因此您不会下载无论如何都不会使用的数据。

结果应如下所示:

{
  "properties": {
    "title": "{YOUR_SPREADSHEET_TITLE}"
  }
}

您可以在 Google API explorer 上试用它,然后再在您的代码中实际使用它。

参考资料