如何处理使用Google表格API v4检索行的结构化查询

时间:2017-02-26 01:14:16

标签: google-sheets google-sheets-api

我想开始将依赖Google Spreadsheet API(v3)的应用程序迁移到Google表格API v4。但是,在我开始之前,我还有一个问题。

在Google表格API v3中,我可以使用请求网址中的sq参数获取带有结构化查询的基于行的Feed。如果工作表有10000行,并且我只需要获取特定列中具有特定值的行,则此选项非常有用。它在速度方面也非常有效。

在查看Google的v4迁移指南时,我在“检索行数据”下找到了此声明:

The Sheets API v4 does not currently have a direct equivalent for the Sheets
API v3 structured queries. However, you can retrieve the relevant data and
sort through it as needed in your application.

如果v4 API中没有结构化查询,我如何有效地从10000行的工作表中检索“相关数据”。我宁愿不必检索所有10000行只是为了筛选响应。特别是因为它会减慢我的应用程序速度,并可能增加通过网络发送的数据量。

使用v4 API,如何检索特定列(或列集)中具有特定值的行?

1 个答案:

答案 0 :(得分:2)

我不需要引用文档,因为您已经意识到了这一点。 Sheetsv4中没有这样的功能。您必须手动执行Basic Reading methods并解析响应,遍历它并筛选您正在寻找的值。

这与您的SO question here有关。我已经在那里写了一些代码,所以我只是在这里发布结果,这样你就可以了解我是如何搜索数值的。

enter image description here

要获取phone,我循环了JSON响应:

arrayBuffer = xhr.response;
             console.log("arrayBuffer "+ arrayBuffer);
             myArr = JSON.parse(arrayBuffer);

              for(var i = 0; i < myArr.values.length; i++){

                 if(myArr.values[0][i] === "phone"){
                     console.log("column position is " + (i+1)); // +1 because counting starts at 0
                 }
              }

您也可以提交Feature Request here