我想开始将依赖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,如何检索特定列(或列集)中具有特定值的行?
答案 0 :(得分:2)
我不需要引用文档,因为您已经意识到了这一点。 Sheetsv4中没有这样的功能。您必须手动执行Basic Reading methods并解析响应,遍历它并筛选您正在寻找的值。
这与您的SO question 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。