2016-06-18 6 views
21

Ich versuche, mit einem Tabellenkalkulationsbeispiel auf Google-Tabellen zuzugreifen. Wenn ich den Beispielcode ausführte, funktionierte es gut. Ich ändere nur die SpreadsheetId und Bereich. Es fing an, mich zu geben:Google-Tabellenkalkulations-API, 400 fehlgeschlagene Fehleranforderung: Bereich kann nicht analysiert werden

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$1.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) 

Unten ist der Code:

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

Antwort

44

Versuchen Class Data!A2:A4 mit A2:A4

+1

Es funktionierte für mich danke. –

+0

Ich möchte auf eine bestimmte Tabelle zugreifen, wie kann ich das tun? (\t Valuerange response = service.spreadsheets) values ​​() \t \t .get (spreadsheetId, range) \t \t .Execute (.); Momentan benutze ich das um Daten zu bekommen –

+7

In dem Beispiel scheint es, dass 'Class Data' der Name des Arbeitsblatts war. Wenn es keine Blätter mit diesem Namen gibt, wird der Fehler ausgegeben. @HemantYadav Wenn Sie sagen, Tabelle, meinst du Arbeitsblatt? Wenn es sich um eine Tabelle handelt, geben Sie die Tabelle an. Wenn es ein Arbeitsblatt ist, geben Sie es in dem Bereich wie "NameOfWorksheet! A2: A4" an, wobei NameOfWorksheet der Name des Arbeitsblatts ist, das Leerzeichen enthält. Wenn Sie das NameOfWorksheet und das Ausrufezeichen weglassen, wird das erste Arbeitsblatt angezeigt. – zeta

9

ersetzen Wenn man sich das Blatt aussehen itself werden Sie feststellen, dass das Arbeitsblatt trägt den Titel „Class Daten". Legen Sie einfach den Namen Ihres Blattes dort ab, wo "Class Data" steht. Beispiel: String range = "SheetName! A1: C";

0

Ich habe versucht, einige Daten auf ein Blatt hinzuzufügen Emmett benannt, die noch nicht existierte und dieser Fehler wurde empfangen:

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

Ich musste manuell das Blatt erstellen Emmett in der Tabelle genannt und dann Es funktionierte wie ein Zauber.