【问题标题】:JSON response is bloated for API requests to Google Sheets对 Google 表格的 API 请求的 JSON 响应过于臃肿
【发布时间】:2012-06-20 22:30:26
【问题描述】:

我在公共只读文档上使用电子表格 JSON api。有没有办法不接收单个单元格的链接和所有额外的膨胀?我只想要数据。

我的请求构造为

http://spreadsheets.google.com/feeds/list/DOCKEY/public/values?alt=json-in-script&callback=callback

消除类别和链接对象会大大缩小响应..

我可以使用基本而不是值,但是我必须解析内容。$t。获取值....

还有其他我找不到的方法吗?

谢谢。

【问题讨论】:

  • 我需要整张工作表,最终将超过 7000 行。
  • @claudio 我不认为有一种方法可以发出单个请求来检索工作簿中的所有工作表?

标签: json google-spreadsheet-api


【解决方案1】:

您可以考虑使用 Apps 脚本,它会为您提供检索指定单元格范围值的方法:

https://developers.google.com/apps-script/class_range#getValues

【讨论】:

  • 嗯。如果我对所述文档的提供者具有写入权限或与之交互,那可能会起作用。看起来您可以向电子表格添加脚本,通过 ajax 请求触发它。生成的数组是否能够作为 json-in-script 返回到客户端浏览器?
【解决方案2】:

您可以考虑以 csv 格式下载电子表格。似乎没有 API,但也许您可以自己构建 URL。

另见Using the google drive API to download a spreadsheet in csv format

【讨论】:

  • 数据正在客户端被 Web 应用程序消费;我想,理想情况下,应该有一个“只读”选项,它不会为您提供所有编辑参考......
【解决方案3】:

与 Apps 脚本 SpreadsheetApp#Range#getValues() 类似的是 Sheets REST API 的 spreadsheets.values() 端点。这样做的好处是您可以从您选择的位置部署它,而不仅限于在 Apps Script 版本的 Javascript 中工作。 Google 提供多种语言版本的客户端库,可简化授权访问的实施。

此外,在向 Google REST API 发出请求时,Standard Parameters 之一是 fields 规范,它允许将应返回的数据限制为仅您请求发送的数据。

引用他们的部分回应sn-p:

电子表格很大,而且您通常不需要电子表格的每个部分。您可以使用 fields URL 参数限制在 Google Sheets API 响应中返回的内容。这在电子表格.get 方法中特别有用。为了获得最佳性能,请在回复中明确列出您需要的字段。 fields 参数的格式与 FieldMask 的 JSON 编码相同。简而言之,多个不同的字段用逗号分隔,子字段用点分隔。为方便起见,可以在括号内列出来自同一类型的多个子字段。

例如,要检索电子表格的标题、工作表的属性以及范围 A1:C10 的值和格式。您可以使用以下请求:

GET https://sheets.googleapis.com/v4/spreadsheets/YOURSHEETID?ranges=A1:C10&fields=properties.title,sheets(sheetProperties,data.rowData.values(effectiveValue,effectiveFormat))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2019-10-13
    • 2011-03-18
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多