【问题标题】:Accessing google spreadsheet api to fetch data with filter访问 google 电子表格 api 以使用过滤器获取数据
【发布时间】:2020-09-02 02:09:25
【问题描述】:

我正在尝试使用 java 从谷歌电子表格中获取具有特定名称的数据。我能够使用 google api 从列中获取完整数据。例如,我将范围指定为“sheet1!B:B”。但是,我不明白

  1. 如何从多列中获取数据。我应该如何通过范围?
  2. 如何为列指定数据过滤器。

非常感谢任何指导。我无法在 github 或 googlespreadsheet api 文档中找到它。请帮帮我

目前我有代码可以使用以下代码从 googlespread 表中获取所有值

String spreadsheetId="spreadseet id";

String range="Sheet!A2:zz";

Sheets service = new Sheets.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName(APPLICATION_NAME).build();

Sheets.Spreadsheets.Values.Get request=service.spreadsheets().values().get(spreadsheetId, range);

ValueRange response = request.execute();

【问题讨论】:

  • 您要获取的列是连续的还是不连续的?可以分享一下你已有的请求码吗?
  • 我正在使用这个 GET sheets.googleapis.com/v4/spreadsheets{spreadsheetId}/values/{range} 并将 Range 解析为 !A:zz 来获取完整的数据。我正在 google apis 中尝试 api 获取值 api 页面。如果我需要单列,我将我的范围指定为 !A:A。它获取数据,但我需要更多功能
  • 请用您的代码更新您的问题:)

标签: java google-sheets-api


【解决方案1】:

我们以googlehere提供的官方示例为例:

  1. 如何从多列中获取数据。我应该如何通过范围?

这是范围:

String range = "Class Data!A2:F";

这意味着将单元格A2中的所有数据提取到名称为Class Data的工作表的F列中。

  1. 如何为列指定数据过滤器。

获得所有数据后,您可以在正常的 for 循环中对其进行过滤。例如,如果我们只想要第 1 列和第 2 列:

List<List<Object>> values = request.execute().getValues();
System.out.println("Name, Gender");
for (List row : values) {
    System.out.println(row.get(0)+", "+row.get(1));
}

输出将是:

Name, Gender
Alexandra, Female
Andrew, Male
Anna, Female

有关official Java Quickstart的更多信息。

【讨论】:

  • 这对我有用。但是,传递他的查询对于 googlespreadsheet 中的任何其他功能来说都是一个可靠的解决方案
【解决方案2】:

您可以尝试使用RestedBox 通过 API 访问您的 Google 表格和本地电子表格数据,包括查询。我一直将它用于一些 POC 而不是数据库。

【讨论】:

    猜你喜欢
    • 2017-01-23
    • 2015-08-18
    • 2010-10-18
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多