使用 Sheets API v4 Java 阅读整个 Google 电子表格
Reading whole Google Spreadsheet with Sheets API v4 Java
我想阅读 Google 电子表格,如 Java 快速入门
中所述
https://developers.google.com/sheets/quickstart/java
快速入门介绍了如何从给定范围读取数据
.....
String range = "Class Data!A2:E";
ValueRange response = service.spreadsheets().values()
.get(spreadsheetId, range)
.execute();
List<List<Object>> values = response.getValues();
....
但我的问题是我不知道电子表格的范围。列数可以更改。那么如何在不知道范围的情况下读取 Sheet 的所有数据?
此致
迈克尔
您可以将整个 Sheet 指定为:String range = "Class Data";
,对于名为 Class 数据 的 Sheet。您可以在 spreadsheets.values.get
参考的 Try it 部分看到输出。
对于那些想要使用 Spread Sheet ID(可以从 URL 获得)而不是 sheet 名称获取数据的人,以下代码片段可能会有用.它打印出在 spreadsheet 下找到的所有 sheet 名称。您可以将打印语句更改为您需要的任何内容。
spreadsheet = service.spreadsheets().get(spreadsheetId=SHEET_ID, includeGridData=True).execute()
for sheet in spreadsheet['sheets']:
print(sheet['properties']['title'])
如果你在 @Bardy 的回答后有点困惑(像我一样),那么下一行可以帮助你(获得 Sheet 的正确标题):
response.getSheets().get(0).getProperties().getTitle();
所以,关于话题,你可以先获取你的Spreadsheet:
Spreadsheet response = service
.spreadsheets()
.get(spreadsheetId)
.execute();
然后这样获取ValueRange:
ValueRange response1 = service.spreadsheets().values()
.get(spreadsheetId,response.getSheets().get(0).getProperties().getTitle())
.execute();
(假设你只有 1 个 sheet,否则尝试 debug/print 所有 sheet 与
response.getSheets()
然后找到您正在使用的 sheet 的标题。
我想阅读 Google 电子表格,如 Java 快速入门
中所述https://developers.google.com/sheets/quickstart/java
快速入门介绍了如何从给定范围读取数据
.....
String range = "Class Data!A2:E";
ValueRange response = service.spreadsheets().values()
.get(spreadsheetId, range)
.execute();
List<List<Object>> values = response.getValues();
....
但我的问题是我不知道电子表格的范围。列数可以更改。那么如何在不知道范围的情况下读取 Sheet 的所有数据?
此致
迈克尔
您可以将整个 Sheet 指定为:String range = "Class Data";
,对于名为 Class 数据 的 Sheet。您可以在 spreadsheets.values.get
参考的 Try it 部分看到输出。
对于那些想要使用 Spread Sheet ID(可以从 URL 获得)而不是 sheet 名称获取数据的人,以下代码片段可能会有用.它打印出在 spreadsheet 下找到的所有 sheet 名称。您可以将打印语句更改为您需要的任何内容。
spreadsheet = service.spreadsheets().get(spreadsheetId=SHEET_ID, includeGridData=True).execute()
for sheet in spreadsheet['sheets']:
print(sheet['properties']['title'])
如果你在 @Bardy 的回答后有点困惑(像我一样),那么下一行可以帮助你(获得 Sheet 的正确标题):
response.getSheets().get(0).getProperties().getTitle();
所以,关于话题,你可以先获取你的Spreadsheet:
Spreadsheet response = service
.spreadsheets()
.get(spreadsheetId)
.execute();
然后这样获取ValueRange:
ValueRange response1 = service.spreadsheets().values()
.get(spreadsheetId,response.getSheets().get(0).getProperties().getTitle())
.execute();
(假设你只有 1 个 sheet,否则尝试 debug/print 所有 sheet 与
response.getSheets()
然后找到您正在使用的 sheet 的标题。