英文:
Accessing google spreadsheet api to fetch data with filter
问题
我正在尝试使用Java从Google电子表格中获取特定名称的数据。我可以使用Google API从列中获取完整的数据。我例如将范围指定为"sheet1!B:B"。然而,我不明白:
- 如何从多列中获取数据。我应该如何传递范围?
- 我如何为列指定数据筛选器。
任何指导都将不胜感激。我在GitHub或Google电子表格API文档中找不到相关信息。请帮帮我。
目前我有从Google电子表格中获取所有值的代码,如下所示:
String spreadsheetId = "电子表格ID";
String range = "Sheet1!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();
英文:
I am trying to fetch data with specific name from a google spreadsheet using java. I am able to fetch complete data from a column using google api. I specify range as "sheet1!B:B" for example. However, I am not understanding
- How to fetch data from multiple columns. How should I pass the range?
- How do I specify the data filter for columns.
Any guidance would be really appreciated. I am unable to find it in github or googlespreadsheet api docs. Please help me out
Currently I have code to fetch all values from googlespread sheet using below code
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();
答案1
得分: 2
以下是翻译好的部分:
让我们来看一下 Google 提供的官方示例此处:
- 如何从多列中获取数据。我应该如何传递范围?
这是范围:
String range = "Class Data!A2:F";
这意味着从单元格 A2
到表格 F
列的数据都会被获取,该表格的名称为 Class Data
。
- 如何为列指定数据筛选器。
一旦您获取了所有数据,您可以在普通的 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
更多信息请参阅官方 Java 快速入门指南。
英文:
Let's take the official example provided by google here:
> 1. How to fetch data from multiple columns. How should I pass the range?
This is the range:
String range = "Class Data!A2:F";
Which means fetch all the data from the cell A2
to the column F
of the sheet with the name Class Data
.
> 2. How do I specify the data filter for columns.
Once you have all the data you can filter it in a normal for-loop. For example if we want only the column 1 and 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));
}
The output will be:
Name, Gender
Alexandra, Female
Andrew, Male
Anna, Female
More info on the official Java Quickstart.
答案2
得分: 0
你可以尝试使用RestedBox来通过API访问你的Google Sheets和本地电子表格数据,包括查询操作。我之前在一些概念验证中使用它,而不是使用数据库。
英文:
You can try using RestedBox to access your Google Sheets and local spreadsheet data through an API, including querying. I've been using it for some POC's instead of a database.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论