2017-08-28 3 views
0

iterieren Ich arbeite mit Google Spreadsheets Api und Android Studio. Ich lese Informationen von einem Blatt und zeige die Ergebnisse in einer Listenansicht an. Mein Problem ist, dass ich die Informationen nur aus der ersten Zeile abrufen kann, aber nicht aus den nächsten. Wie kann ich das machen?Wie alle Zeilen von Google Sheet

Ich habe den nächsten Code:

private class MakeRequestTask extends AsyncTask<Void, Void, List<String>> { 
     private Exception mLastError = null; 

     MakeRequestTask(GoogleAccountCredential credential) { 

     } 

     @Override 
     protected List<String> doInBackground(Void... params) { 
      try { 
       return getDataFromApi(); 
      } catch (Exception e) { 
       mLastError = e; 
       cancel(true); 
       return null; 
      } 
     } 

     private List<String> getDataFromApi() throws IOException { 

      String range = "Sheet1!A2:H"; 
      List<String> results = new ArrayList<String>(); 
      ValueRange response = mService.spreadsheets().values() 
        .get(spreadsheet_id, range) 
        .execute(); 
      List<List<Object>> values = response.getValues(); 
      if (values == null) { 
       //No me deja mostrar toast aqui 
      } else { 
       for (List row : values) { 
         row.get(0); 
         row.get(1); 
         row.get(2); 
         row.get(5); 
         System.out.println("resultados:" + row.get(0) + ", " + row.get(1)); 
        } 
       } 


      return results; 
     } 

Antwort

0

Versuchen Sie, die Beispielcode auf Reading multiples ranges

zu lesen mehrere diskontinuierliche Bereiche zu überprüfen, eine spreadsheets.values.batchGet verwenden, die Sie beliebig viele Bereiche angeben können abgerufen werden:

Hier ist ein Beispiel-Java-Code:

List<String> ranges = Arrays.asList(
     //Range names ... 
     ); 
BatchGetValuesResponse result = service.spreadsheets().values().batchGet(spreadsheetId) 
     .setRanges(ranges).execute(); 

Eine andere Sache ist versuchen, die for-Schleife ersetzen:

for (List row : values) { 
    // Print columns A and E, which correspond to indices 0 and 4. 
    System.out.printf("%s, %s\n", row.get(0), row.get(4)); 
} 

können Sie die Indizes geben Sie benötigt. Im Beispiel Index 0 bis 4.

Hoffen Sie, dass Sie das suchen.

Verwandte Themen