Antwort

9

Sie können den Bereich auf "A2: D" setzen, und dies würde so weit wie die letzte Datenzeile in Ihrem Blatt abrufen.

+0

ja, danke !!! – seba123neo

0

Sie müssen nicht. Legen Sie einen großen Bereich fest (zum Beispiel A2:D5000), um sicherzustellen, dass alle Ihre Zeilen darin liegen. Ich weiß nicht, ob es weitere Auswirkungen hat, vielleicht ist der Speicherverbrauch erhöht oder so, aber jetzt ist es in Ordnung.

private List<String> getDataFromApi() throws IOException { 
     String spreadsheetId = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"; 
     String range = "A2:D5000"; 
     List<String> results = new ArrayList<String>(); 
     ValueRange response = this.mService.spreadsheets().values() 
       .get(spreadsheetId, range) 
       .execute(); 
     List<List<Object>> values = response.getValues(); 
     if (values != null) { 
      results.add("Name, Major"); 
      for (List row : values) { 
       results.add(row.get(0) + ", " + row.get(3)); 
      } 
     } 
     return results; 
    } 

Betrachten Sie die Schleife for (List row : values). Wenn Sie zwei Zeilen in Ihrer Tabelle haben, erhalten Sie zwei Elemente in der Liste values.

+0

Sie müssen keine große Grenze festlegen, indem Sie einfach "A2: D" eingeben, um den letzten Wert von A, B, C, D zu finden. –

+0

Das stimmt! Vielen Dank! Ich war damals nicht erfahren :) – yurart

0

Ich habe es geschafft, es durch Zählen der gesamten Zeilen aus aktuellen Tabellen zu bekommen. Dann hängen Sie die Daten an die nächste Zeile an.

rowcount = this.mService.spreadsheets().values().get(spreadsheetId, range).execute().getValues().size()