Google 电子表格 API,400 错误错误请求:无法解析范围

Google spreadsheet API, 400 error bad request : unable to parse range

我正在尝试使用电子表格示例访问 Google 电子表格。当我 运行 示例代码时,它运行良好。我只是更改 SpreadsheetId 和范围。它开始给我:

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Unable to parse range: Class Data!A2:A4",
    "reason" : "badRequest"
  } ],
  "message" : "Unable to parse range: Class Data!A2:A4",
  "status" : "INVALID_ARGUMENT"
}
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.interceptResponse(AbstractGoogleClientRequest.java:321)
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
    at poc.mainPOC.main(mainPOC.java:157)

代码如下:

  String spreadsheetId = "my spread sheet ID";
    String range = "Class Data!A2:A4";
    ValueRange response = service.spreadsheets().values()
        .get(spreadsheetId, range)
        .execute();

尝试用 A2:A4

替换 Class Data!A2:A4

如果您查看 sheet itself,您会注意到作品sheet 的标题为 "Class Data"。因此,只需将 sheet 的名称放在 "Class Data" 的位置即可。例子: 字符串范围 = "SheetName!A1:C";

我试图将一些数据添加到名为 Emmett 的 sheet 中,该数据尚不存在,但收到此错误:

Error: Unable to parse range: Emmet!A2:C12

我不得不在传播中手动创建名为 Emmett 的 sheet sheet 然后它就像一个魅力。

我 运行 当我在选项卡名称中输入错误时陷入此错误。在您的情况下 "Class Data" 与选项卡的名称不匹配

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

Class Data 是您的工作表名称,仅供参考:底部选项卡上的名称,默认名称是 "Sheet1"。将 Class Data 替换为您要使用的那个。

在我的例子中,google sheet 中有一个额外的 space,而我最后正在修剪 sheet 名称。删除修剪逻辑后,一切正常。

我了解到,如果列名尚不存在,则此命令将无法找到它。您需要确保要写入的列已经存在——我是从 google sheet 手动完成的。