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

Google sheets 如何使用GoogleSheets(v4)API getByDataFilter返回特定的数据行?,google-sheets,google-sheets-api,Google Sheets,Google Sheets Api,我想找到一种使用GoogleAPI根据我提供的标准检索特定数据行的方法。我在想“getByDataFilter”可能会这样做吗 我正在写一个应用程序供个人使用。我想使用谷歌工作表作为我的后端,以便我可以从它邮件合并。在这个阶段,我使用API资源管理器来查看我可以获得哪些数据。我已经知道了如何使用 GET https://sheets.googleapis.com/v4/spreadsheets/1keCaROqv4ytDaf5AhcMV13Jj3N_eZCpLfRAGt2ycwA8/values

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

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

GET https://sheets.googleapis.com/v4/spreadsheets/1keCaROqv4ytDaf5AhcMV13Jj3N_eZCpLfRAGt2ycwA8/values/A%3AL?valueRenderOption=UNFORMATTED_VALUE&fields=values&key={YOUR_API_KEY} 我希望能够以某种方式过滤Tim的行并返回['Tim',23,'Student']

谢谢

克雷格
  • 您希望从电子表格中检索过滤后的值
  • 您希望从外部检索值
  • 您已经能够使用Sheets API和访问令牌来请求API
  • 如果我的理解是正确的,那么这个答案呢?请把这看作是几个答案中的一个

    问题: 遗憾的是,无法使用spreadsheets.getByDataFilter的方法直接检索筛选出的值。当你想使用这个,首先,请把开发者元数据。然后,可以使用spreadsheets.getByDataFilter方法检索该值。例如,作为一个测试用例,它考虑以下情况

    • 您问题中的样本值用于此情况。因此,
      Tim
      被放在“A3”的单元格中
    • 使用batchUpdate方法将开发人员元数据创建到带有“createDeveloperMetadata”的单元格“A3”
      metadataKey
      metadataValue
      分别是
      key1
      value1
    • 在上述情况下,当请求以下端点时,可以检索这些值。
      • 端点:
        POSThttps://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:getByDataFilter?字段=工作表%2Fdata%2FrowData%2Fvalues%2FuserEnteredValue
      • 请求正文:
        {“数据过滤器”:[{“developerMetadataLookup”:{“metadataLocation”:{“sheetId”:{sheetId}}}]}
      • 当然,也可以使用
        metadataKey
        metadataValue
        检索这些值
      • 结果:
        {“sheets”:[{“data”:[{“rowData”:[{“values”:[{“userEnteredValue”:{“stringValue”:“Tim”},{“userEnteredValue”:{“numberValue”:23},{“userEnteredValue”:{“stringValue”:“Student”}}}
    在这种情况下,需要将开发人员元数据设置为单元格。但从你的问题和回答来看,我认为这种方法可能与你想要的不同。因此,我想提出一种解决方法,直接从电子表格中检索过滤后的值

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

    查询: 或

    • 在此示例中,CSV数据作为结果值返回
    • 使用此脚本时,请设置
      {spreadsheetId}
      {sheetId}
      {query}
      {accessToken}
      。如果要使用其他情况,也请修改
      range=A2:C
      • URL的查询参数的每个值可能都需要进行URL编码。请小心这个
    • 当您使用浏览器访问上述URL时,将检索CSV数据
    结果: 当针对问题中的样本值运行上述curl sample时,将检索以下值

    "Tim","23","Student"
    
    参考:

    我可以问一下您的情况吗?1.您希望使用什么条件从示例电子表格中检索
    ['Tim',23,'Student']
    ?2.您可以使用OAuth2和/或服务帐户检索的访问令牌吗?嗨,Tanaike。我最终计划通过Corona SDK(我用来制作应用程序的SDK)的REST调用来使用它。实际上,我想使用“batchUpdateByDataFilter”来更新特定的范围,但我想先使用“getByDataFilter”来尝试理解“dataFilters”。我可以使用访问令牌没有问题,我的问题是我似乎无法理解“getByDataFilter”是如何工作的,或者它可能没有按照我认为的方式工作。谢谢您的回复。我贴出了你问题的答案。你能确认一下吗?如果我误解了你的问题,而这不是你想要的结果,我道歉。谢谢塔奈克。这就是我要求的。我在这里贴了一个单独的问题,如果你能帮忙的话,谢谢你的回复。我很高兴你的问题解决了。关于你的新问题,我想核实一下。
    ----------------------------------
    | Name  | Age   | Job            |
    ----------------------------------
    | Craig | 42    | Teacher        |
    ----------------------------------
    | Tim   | 23    | Student        |
    ----------------------------------
    | Jess  | 45    | Accountant     |
    ----------------------------------
    
    select * where C='Student'
    
    select * where B<40
    
    curl "https://docs.google.com/spreadsheets/d/{spreadsheetId}/gviz/tq?gid={sheetId}&tqx=out:csv&range=A2:C&tq={query}&access_token={accessToken}"
    
    "Tim","23","Student"