2012-12-12 23 views
21

Non riesco a capire quale librerie utilizzare per lo sviluppo di un'app per Android che utilizza il foglio di calcolo di Google. Ho bisogno di collegare, copiare, modificare, leggere da un foglio di calcolo utente, ma non riesco a capire oggi quale sia il modo.Android - Foglio di calcolo Google 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/ 

Qual è il corretto?

risposta

9

Alla fine le librerie che ho usato sono:

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 

Come suggerito da Eugenio (grazie per questo !!!) i librerie "misti" dal foglio di calcolo api con il java-client-api e dopo il autenticazione ho usato la seguente per ottenere le cellule

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); 

per il momento ho usato il "peggiore" sistema di autenticazione e dovrei trasformare questo in OAuth2 ma per il momento la ClientLogin è fatto in questo modo:

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

Hai mai lavorato con OAuth2? – Jack

+0

in realtà non ci ho mai lavorato di nuovo .. ho usato solo l'autenticazione descritta. Scusa .. –

+0

ma restituirà tutti i fogli di calcolo, in che modo provo ad accedere al foglio di spread specifico – Fasiha

23

Risposta breve: Tutti e tre

Risposta lunga:

Si dovrà utilizzare il nuovo Drive API, che permette di caricare, scaricare e modificare i file in Google Drive. Con questo hai solo operazioni limitate su fogli di calcolo, in pratica scaricalo o caricarlo.

Il Google Spreadsheet Api consente di eseguire operazioni complesse in fogli di calcolo, come l'accesso ai dati per riga e colonna.

Il Google API java client è una dipendenza in tutte le API di Google, viene utilizzato per autorizzare la connessione in diversi modi, come OAuth o account di servizio.

+1

Grazie per la tua risposta! ... hai qualche tutorial o un esempio scaricabile? non riesco a capire come integrarli insieme .. –

+0

Beh, non con tutti e tre insieme, ma [questo tutorial] (http://code.google.com/p/google-api-java-client/wiki/APIs#Drive_API) utilizza API client e API Drive, utilizzando l'API Spreadsheet dovrebbe essere semplice dopo che –

+2

@EugenioCuevas Il collegamento è morto. – rahulserver

Problemi correlati