如何从谷歌表格中获取原始单元格数据?

问题描述 投票:0回答:1

我使用 Google Sheets API 接收数据,并希望获取位于 Google Drive 上的文件的链接,该链接显示为图标和标签,如屏幕截图所示。

我正在使用该方法https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/get 但作为回应,我总是得到“test_file.kml”,而不是 Google Drive 的链接。

如何获取链接的值?

enter image description here

google-api google-sheets-api
1个回答
0
投票

问题和解决方法:

遗憾的是,现阶段似乎无法通过Sheets API直接检索智能芯片文件的链接。但是,作为当前的解决方法,当运行以下流程时,可以通过 Sheets API 检索智能芯片文件的链接。

  1. 将 Google 电子表格转换为 XLSX。
  2. 将 XLSX 转换为 Google 电子表格。

通过此流程,智能芯片被转换为带有链接的值。这个想法来自这篇文章(作者:我)。在这种情况下,可以通过 Sheets API 检索链接。当然,您也可以直接从 Google Spreadsheet 转换的 XLSX 数据中检索链接。在这种情况下,无法使用 Sheets API。

卷曲命令示例

当上面的流程通过curl注释实现时,就变成了如下。

1.将 Google 电子表格转换为 XLSX

在本例中,Google 电子表格通过 Drive API 导出为 XLSX 文件。

curl \
  'https://www.googleapis.com/drive/v3/files/[fileId]/export?mimeType=application%2Fvnd.openxmlformats-officedocument.spreadsheetml.sheet' \
  -H 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  -o sample.xlsx

2.将 XLSX 转换为 Google 电子表格

在本例中,XLSX 文件是通过 Drive API 转换为 Google Spreadsheet 来上传的。

curl \
  'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart' \
  -H 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  -F 'metadata={"name":"sample.xlsx","mimeType":"application/vnd.google-apps.spreadsheet"};type=application/json' \
  -F '[email protected]'

这里请从返回值中查看上传文件的文件ID。该文件 ID 与下一步的 Sheets API 一起使用。

3.检索智能芯片的链接

在这种情况下,智能芯片的链接是从使用 Sheets API 从 XLSX 文件转换而来的 Google 电子表格中检索的。请将文件ID设置为

[fileId]
。并且,请将所需的单元格坐标设置为 A1Notation。如果智能芯片的链接是
'Sheet1'!A1
,请在查询参数中添加
ranges=%27Sheet1%27!A1

curl \
  'https://sheets.googleapis.com/v4/spreadsheets/[fileId]?ranges=%27Sheet1%27!A1&fields=sheets(data(rowData(values(hyperlink))))' \
  -H 'Authorization: Bearer [YOUR_ACCESS_TOKEN]'

这样,当

'Sheet1'!A1
中存在文件链接的智能芯片时,返回以下结果。

{
  "sheets": [
    {
      "data": [
        {
          "rowData": [
            {
              "values": [
                {
                  "hyperlink": "###"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

注:

  • 这个答案解释了实现您的目标的解决方法。如果您确实使用此解决方法,请根据您的情况创建一个脚本。
  • 在此答案中,假设访问令牌是使用 Drive API 和 Sheets API 的有效令牌。请注意这一点。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.