【问题标题】:Get filtered data from Google Sheets API从 Google Sheets API 获取过滤后的数据
【发布时间】:2018-02-16 04:07:25
【问题描述】:

我正在使用 nodeJS 从 google sheet 中获取数据,并且 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"}]}})

【问题讨论】:

    标签: node.js google-sheets-api oauth2-playground


    【解决方案1】:

    这个答案怎么样?

    A1

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

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

    A2

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

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

    关于查询语言,可以在查询Language Reference查看详细信息。

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

    编辑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

    如果您想检索其他页面,请使用以下网址确认。

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

    注意:

    • 如果访问网址出错,请确认电子表格是否重新发布。

    【讨论】:

    • 嘿,谢谢你这么详细的回答。
    • 嘿,我正在获取内容类型 |应用程序/javascript; charset=utf-8...我如何获得应用程序/json 格式 这是:google.visualization.Query.setResponse({"version":"0.6","re​​qId":"0","status":" ok","sig":"509770406","table":{"cols":[{"id":"A","label":"响应路径","type":"string"},{" id":"B","label":"Name","type":"string"}]}})
    • @Himanshu Teotia 对于给您带来的不便和不完整的回答,我深表歉意。我无法从您的评论中了解您目前的情况。你能告诉我们详细信息吗?如果可以,请将其添加到您的问题中。我很抱歉我的英语不好。
    • @Himanshu Teotia 感谢您更新您的问题。我更新了我的答案。请确认。
    • 仍然,我无法将我请求的数据转换为 JSON 格式。 Google 在请求的数据中附加类似 /*O_o*/ 的内容,这会导致错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    相关资源
    最近更新 更多