2012-12-12 32 views
21

Ich kann nicht erhalten, welche Bibliotheken ich für die Entwicklung einer Android-App verwenden sollte, die Google Tabellenkalkulation verwaltet. Ich muss verbinden, kopieren, bearbeiten, lesen von einem Benutzer Tabellenkalkulation, aber ich kann heute nicht verstehen, was der Weg ist.Android - Google Spreadsheet Api

Google Drive Api : https://developers.google.com/drive/ 
Google Spreadsheet Api: https://developers.google.com/google-apps/spreadsheets/ 
Google APi java client: http://code.google.com/p/google-api-java-client/ 

Welches ist das richtige?

Antwort

9

Am Ende der Bibliotheken i verwendet werden:

gdata-client-1.0.jar 
gdata-client-meta-1.0.jar 
gdata-core-1.0.jar 
gdata-spreadsheet-3.0.jar 
gdata-spreadsheet-meta-3.0.jar 
google-api-client-1.12.0-beta.jar 
google-api-client-android-1.12.0-beta.jar 
google-http-client-1.12.0-beta.jar 
google-http-client-android-1.12.0-beta.jar 
google-oauth-client-1.12.0-beta.jar 
gson-2.1.jar 
guava-13.0.1.jar 
jackson-core-asl-1.9.9.jar 
jsr305-1.3.9.jar 
protobuf-java-2.4.1.jar 

Wie Eugenio (denn das dank !!!) vorgeschlagen i "gemischte" Bibliotheken von Tabelle api mit dem Java-Client-api und nach der Authentifizierung verwendet i die folgenden für das erhalten der Zellen

SpreadsheetEntry spreadsheet = null; 
URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full"); 

SpreadsheetFeed spreadsheetFeed = service.getFeed(metafeedUrl, SpreadsheetFeed.class); 
List<SpreadsheetEntry> spreadsheets = spreadsheetFeed.getEntries(); 
for (SpreadsheetEntry entry : spreadsheets) { 
    if (entry.getTitle().getPlainText().equals(spreadsheetTitle)) { 
     spreadsheet = entry; 
    } 
} 

if (spreadsheet == null) { 
    throw new FileNotFoundException("Cannot find the required spreadsheet '" + spreadsheetTitle + "'"); 
} 

WorksheetEntry worksheet = null; 
WorksheetFeed worksheetFeed = service.getFeed(spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class); 
List<WorksheetEntry> worksheets = worksheetFeed.getEntries(); 
    for (WorksheetEntry entry : worksheets) { 
    if (entry.getTitle().getPlainText().equals(worksheetTitle)) { 
     worksheet = entry; 
    } 
} 

if (worksheet == null) { 
    throw new FileNotFoundException("Cannot find the required worksheet '" + worksheetTitle + "'"); 
} 

URL listFeedUrl = worksheet.getListFeedUrl(); 
ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class); 

im Moment ich das „worst“ Authentifizierungssystem verwendet, und ich sollte dies in der OAuth2 drehen, aber für den Moment der Clientlogin wird auf diese Weise getan:

SpreadsheetService service = new SpreadsheetService("v1"); 
service.setProtocolVersion(SpreadsheetService.Versions.V3); 
service.setUserCredentials(email, password); 
+0

Haben Sie OAuth2 jemals damit arbeiten? – Jack

+0

ich habe eigentlich nie wieder daran gearbeitet .. ich habe nur die beschriebene authentifizierung benutzt. Sorry .. –

+0

aber es wird alle Tabellen zurückgeben, wie Cloud ich versuche, auf bestimmte Tabellenblatt zugreifen – Fasiha

23

Kurze Antwort: Alle drei

Lange Antwort:

Sie die neue Drive API verwenden müssen, die Download hochladen und Ändern von Dateien in Google Drive. Damit haben Sie nur eingeschränkte Möglichkeiten für Tabellenkalkulationen, laden Sie sie herunter oder laden Sie sie hoch.

Die Google Spreadsheet Api ermöglicht komplexe Operationen in Tabellenkalkulationen, z. B. den Zugriff auf Daten nach Zeilen und Spalten.

Die Google API java client ist eine Abhängigkeit in allen Google-APIs. Sie wird verwendet, um die Verbindung auf verschiedene Arten zu autorisieren, z. B. OAuth- oder Dienstkonten.

+1

Vielen Dank für Ihre Antwort! ..haben Sie ein Tutorial oder ein herunterladbares Beispiel? Ich kann nicht verstehen, wie man sie zusammen integriert. –

+0

Nun, nicht mit allen drei zusammen, aber [dieses Tutorial] (http://code.google.com/p/google-api-java-client/wiki/APIs#Drive_API) verwendet Client-API und Drive-API, die Verwendung der Spreadsheet-API sollte danach einfach sein –

+2

@EugenioCuevas Der Link ist tot. – rahulserver