【问题标题】:How to fetch Specific row from google-sheet by using Google-sheet-apis(Node.js)?如何使用 Google-sheet-apis(Node.js) 从 google-sheet 中获取特定行?
【发布时间】:2021-02-05 02:27:24
【问题描述】:

我使用 google-apis SDK 进行开发。我可以使用sheets.spreadsheets.values.get 方法从工作表中获取值。但它会从该工作表返回整个值。我需要过滤查询之类的内容。

这是我实际尝试的,

Sample Sheet Image

假设上述数据是一个电子表格,这里sheets.spreadsheets.values.get 这会从该表格返回整个值。但我尝试通过Email=surya@aaa.com 获取第一行

【问题讨论】:

  • 请编辑您的问题并包含您的代码并向我们展示您的尝试

标签: node.js google-api google-sheets-api google-api-nodejs-client


【解决方案1】:

spreadsheets.values.get 方法允许(并要求)您指定范围

range 的示例值 - 用于获取 Sheet1 的第 5 行将是 Sheet1!A5:Z5

更新

如果您不知道要检索哪一行,但想合并查询请求,例如在 Google 表格 UI 中:

Google Sheets API 无法做到这一点。

但是有一个解决方法:

使用 Google Visualization API query

工作流程:

  • 将您的电子表格发布为“知道链接的任何人都可以查看”
  • 通过以下方式创建 URL
    • 获取电子表格的基本 URL https://docs.google.com/a/google.com/spreadsheets/d/XXXXXX
    • 添加到 URL /gviz/tq?tq=
    • 在表格 UI 中创建您的查询并对其进行 URL 编码
    • 将 URL 编码查询添加到您的 URL
  • 使用生成的 URL 执行简单的提取请求

示例:

如果您的查询是select A

  • URL 将是https://docs.google.com/spreadsheets/d/XXXXX/gviz/tq?tq=select%20A
  • GET 请求的响应是:
google.visualization.Query.setResponse({"version":"0.6","reqId":"0","status":"ok","sig":"1023816999","table":{"cols":[{"id":"A","label":"","type":"number","pattern":"General"}],"rows":[{"c":[{"v":1.0,"f":"1"}]},{"c":[{"v":4.0,"f":"4"}]}],"parsedNumHeaders":0}});

您可以根据需要访问嵌套的 JSON 结构,当然也可以根据需要制定查询。

【讨论】:

  • 你说得对,但我想过滤它,就像用工作表值查询一样。假设名为 Email Id 的列,我想获取包含一些电子邮件 ID 的特定行。
  • 你的意思是,你想检索一个命名范围?
  • 不,我想要在工作表中输入一些值的单行,这里我使用Sheet1 作为范围参数。
  • 您将如何在表格 UI 中制定您的查询?
  • 为什么 Google Sheets API 无法做到这一点?有什么文件吗?
猜你喜欢
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多