当前位置: 首页 > 知识库问答 >
问题:

如何使用GoogleSheets(v4)API getByDataFilter返回特定的数据行?

陆绍辉
2023-03-14

我想找到一种使用GoogleAPI根据我提供的标准检索特定数据行的方法。我在想“getByDataFilter”可能会这样做吗?

我正在写一个个人使用的应用程序。我想使用谷歌工作表作为我的后端,这样我就可以从它邮件合并。在这个阶段,我使用API资源管理器来查看我可以获得哪些数据。我已经想出了如何从一系列细胞中获取数据


    GET https://sheets.googleapis.com/v4/spreadsheets/1keCaROqv4ytDaf5AhcMV13Jj3N_eZCpLfRAGt2ycwA8/values/A%3AL?valueRenderOption=UNFORMATTED_VALUE&fields=values&key={YOUR_API_KEY}

我尝试过使用getByDataFilter,但似乎无法返回任何筛选值。

我有以下内容,基本上返回所有内容。


    POST https://sheets.googleapis.com/v4/spreadsheets/1keCaROqv4ytDaf5AhcMV13Jj3N_eZCpLfRAGt2ycwA8:getByDataFilter?fields=sheets(data(columnMetadata%2FdeveloperMetadata%2Flocation%2FdimensionRange%2FstartIndex%2CrowData%2Fvalues%2FeffectiveValue%2CstartColumn%2CstartRow))&key={YOUR_API_KEY}

    {
     "dataFilters": [
      {
       "developerMetadataLookup": {
        "metadataLocation": {
        }
       }
      }
     ]
    }

我希望能够过滤数据,只返回符合我指定条件的列。i、 举个简单的例子,如果我有这样一张纸

----------------------------------
| Name  | Age   | Job            |
----------------------------------
| Craig | 42    | Teacher        |
----------------------------------
| Tim   | 23    | Student        |
----------------------------------
| Jess  | 45    | Accountant     |
----------------------------------

我希望能够以某种方式过滤Tim的行并返回['Tim',23,'Student']

谢谢,

克雷格

共有1个答案

王刚毅
2023-03-14
  • 您想从电子表格中检索筛选的值。
  • 要从外部检索值。
  • 您已经能够使用工作表API和访问令牌来请求API。

如果我的理解是正确的,那么这个答案呢?请把这看作是几个答案中的一个。

不幸的是,无法使用电子表格的方法直接检索过滤后的值。getByDataFilter。当你想使用这个,首先,请把开发者元数据。然后,您可以使用电子表格的方法检索值。getByDataFilter。例如,作为一个测试用例,它考虑以下情况。

  • 您问题中的样本值用于此情况。因此,Tim被放在“A3”的单元格中

在这种情况下,需要将开发人员元数据设置为单元格。但从你的问题和回答来看,我认为这种方法可能与你想要的不同。因此,我想提出一种解决方法,直接从电子表格中检索过滤后的值。

在这个解决方案中,我建议使用查询语言检索过滤后的值。示例查询如下所示。

select * where C='Student'

select * where B<40

在上述情况下,当列C的作业学生时,将检索行。在下面的情况下,当列“B”的年龄小于40时,将检索行。在示例值中,将从两个查询中检索"Tim"、"23"、"学生"

当上面的查询由curl命令运行时,它变成如下所示。

curl "https://docs.google.com/spreadsheets/d/{spreadsheetId}/gviz/tq?gid={sheetId}&tqx=out:csv&range=A2:C&tq={query}&access_token={accessToken}"
  • 在此示例中,CSV数据作为结果值返回。
  • 使用此脚本时,请设置{spreadsheetId}{sheetId}{Query}{AccToken}。如果要使用其他情况,也请修改range=A2: C
    • URL的查询参数的每个值可能需要进行URL编码。请小心这个。

    当针对问题中的样本值运行上述curl sample时,将检索以下值。

    "Tim","23","Student"
    
    • 查询语言参考(版本0.7)

 类似资料:
  • 问题内容: 在Oracle 10g中,我有以下SQL: 返回: 我想扩展此查询以确定此结果集中的dog.id的oracle rownum。 我试过了 但这并不能很好地解决(无论我匹配哪个dog.id,它都返回1)。我原本希望回来3。 谢谢你的帮助! 笔记 http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html 我很确

  • 问题内容: 试图弄清楚如何返回上一页。我在用 这是我在第一个登录页面中配置的代码: 为了转发到后续页面,我只需执行以下操作: 但是,如何返回上一页?尝试了以下一些事情,但没有运气:1。 给出错误: TypeError:null不是对象(评估“ this.props”) 给出错误: TypeError:null不是对象(评估“ this.context”) 给出错误: TypeError:null不

  • 问题内容: 我想返回数组的奇数,但是Eclipse似乎不接受我的返回码。我认为这需要返回整个数组,因为我将数组设置为方法的参数。如前所述,我需要传递一个数组并获取该数组的特定元素作为回报。即使我将该数组设为静态,如何返回单个元素? 编辑:好吧,这里是: 我知道这里可能存在多个错误,但我正在努力,不仅要返回奇数,还要将它们加在一起。 问题答案: 您的代码应如下所示: 这里的要点是方法返回类型,它应该

  • 我是DBIx::Class的新手。我用它作为API从我的数据库中重新运行数据,我想用DBIC重新创建一个SELECT*from表。对于DBI,它对我很有效 返回数据“漂亮”的最佳方法是什么 我想以哈希数组的形式返回数据,如: 但是使用

  • 我正在使用ElasticSearch 7.3来查询一些文档, 我想在查询响应中只返回每个文档的特定字段, 我发现可以使用来实现这一点, 我可以从Kibana使用这个查询来实现这一点- 返回给我正确的数据- 但我无法使用ElasticSearch的节点客户端实现同样的功能- 有人能帮我找到正确的方法来实现我的用例吗? 引用- https://www.elastic.co/guide/en/elast

  • 问题内容: 在其他语言(例如R或SQL)中找到该选项的地方,但我不太确定如何在Pandas中进行此操作。 因此,我有一个具有1262列和1行的文件,并且每次出现特定值时都需要返回列标题。 例如说这个测试数据框: 我需要找到列名,例如value = 38.15。最好的方法是什么? 谢谢 问题答案: 看到只有一行,那么您可以调用结果并使用它来屏蔽列: 分解以上内容: 您也可以使用param :