0

我正在使用 nodeJS 从谷歌表中获取数据,并且 URL 如下所示:

var url = `https://sheets.googleapis.com/v4/spreadsheets/${sheet_key}/values/Sheet2!A1:J20?key=${google_API_key}`

由此,我只得到 A1 到 J20 之间的数据所以现在我有两个问题:

  1. 如何从工作表中获取所有行或最后 10 行。
  2. 如何应用结构化查询过滤器,例如: where name == "Himanshu"

编辑:

对于问题 2:我所做的是使用 @Tanaike 引用的查询语言参考(版本 0.7)/结构化查询。这就是我的 URL 现在的样子以及它的工作方式。
https://docs.google.com/a/google.com/spreadsheets/d/${sheet_key}/gviz/tq?tq=select%20*%20where%20B%20%3D%20'Himanshu'&key=${google_API_key}

但问题是它向我返回了我无法解析的字符串。

google.visualization.Query.setResponse({"version":"0.6","reqId":"0","status":"ok","sig":"509770406","table":{"cols":[{"id":"A","label":"Response Path","type":"string"},{"id":"B","label":"Name","type":"string"}]}})

4

1 回答 1

3

这个答案怎么样?

A1

您可以使用工作表名称检索所有行,范围如下。

var url = `https://sheets.googleapis.com/v4/spreadsheets/${sheet_key}/values/Sheet2?key=${google_API_key}`

A2

您可以像where name == "Himanshu"使用查询语言一样使用查询。为了使用它,请按如下方式共享电子表格。

  • 在 Google 云端硬盘上
    • 在电子表格文件上
    • 右键单击->共享->高级->在“私人-只有您可以访问”中单击“更改”
    • 勾选“在任何知道链接的人”
    • 点击“保存”
    • 在“共享链接”处,复制 URL。
      • 从以下位置检索文件 IDhttps://docs.google.com/spreadsheets/d/### file ID ###/edit?usp=sharing

关于查询语言,您可以在查询语言参考中查看详细信息。

如果我误解了你的问题,我很抱歉。

编辑 1:

当您要检索格式化数据时,请使用tqx=out:. 在您的情况下,tqx=out:json使用。好像是默认的。例如,您想要 csv,它是tqx=out:csv. 你也可以使用tqx=out:html. 我认为这tqx=out:csv可能对您的情况有用。

https://docs.google.com/a/google.com/spreadsheets/d/${sheet_key}/gviz/tq?tqx=out:csv&tq=select%20*%20where%20B%20%3D%20'Himanshu'&key=${google_API_key}

编辑 2:

为了检索电子表格的 JSON 数据,请执行以下操作。

  • 在电子表格上
    • 单击文件 -> 发布到网络
    • 发布为网页。

网址 1

您可以使用以下 URL 以 JSON 格式检索电子表格的值。

https://spreadsheets.google.com/feeds/cells/${sheet_key}/od6/public/values?alt=json

od6表示电子表格的第一页。

网址 2

如果您想检索其他页面,请使用以下 URL 进行确认。

https://spreadsheets.google.com/feeds/worksheets/${sheet_key}/public/basic?alt=json

笔记 :

  • 如果访问网址时出现错误,请确认电子表格是否重新发布。
于 2018-02-16T04:30:30.563 回答