Sto avendo alcune informazioni in Google fogli di calcolo come un foglio singolo. Esiste un modo in cui posso leggere queste informazioni da .NET fornendo le credenziali di google e l'indirizzo del foglio di calcolo. È possibile utilizzare le API di dati di Google. In definitiva, ho bisogno di ottenere le informazioni dal foglio di lavoro Google in un DataTable. Come posso farlo? Se qualcuno lo ha provato, pls condividerà alcune informazioni.Accesso a Google fogli di calcolo con C# utilizzando l'API dei dati di Google
risposta
Secondo il .NET user guide:
Scaricare il .NET client library:
Aggiungi queste affermazioni utilizzando:
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;
autenticazione:
SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
myService.setUserCredentials("[email protected]", "mypassword");
Ottenere un elenco di fogli di calcolo:
SpreadsheetQuery query = new SpreadsheetQuery();
SpreadsheetFeed feed = myService.Query(query);
Console.WriteLine("Your spreadsheets: ");
foreach (SpreadsheetEntry entry in feed.Entries)
{
Console.WriteLine(entry.Title.Text);
}
Dato uno SpreadsheetEntry hai già recuperato, è possibile ottenere un elenco di tutti i fogli di lavoro in questo foglio di calcolo come segue:
AtomLink link = entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);
WorksheetQuery query = new WorksheetQuery(link.HRef.ToString());
WorksheetFeed feed = service.Query(query);
foreach (WorksheetEntry worksheet in feed.Entries)
{
Console.WriteLine(worksheet.Title.Text);
}
E ottenere un feed basato cellulare :
AtomLink cellFeedLink = worksheetentry.Links.FindService(GDataSpreadsheetsNameTable.CellRel, null);
CellQuery query = new CellQuery(cellFeedLink.HRef.ToString());
CellFeed feed = service.Query(query);
Console.WriteLine("Cells in this worksheet:");
foreach (CellEntry curCell in feed.Entries)
{
Console.WriteLine("Row {0}, column {1}: {2}", curCell.Cell.Row,
curCell.Cell.Column, curCell.Cell.Value);
}
Sono abbastanza sicuro che ci saranno alcuni CKK/toolkit C# su Google Code per questo. Ho trovato this one, ma potrebbero essercene altri, quindi vale la pena visitarlo.
http://code.google.com/apis/gdata/articles/dotnet_client_lib.html
Questo dovrebbe iniziare. Non ci ho giocato ultimamente, ma ho scaricato una versione molto vecchia qualche tempo fa e mi è sembrato piuttosto solido. Questo è aggiornato anche a Visual Studio 2008, quindi dai un'occhiata ai documenti!
Si può fare quello che stai chiedendo diversi modi:
utilizzando la libreria # foglio di calcolo C di Google (come nella risposta di Tacoman667) per andare a prendere un ListFeed che può restituire un elenco di righe (ListEntry in Google gergo) ognuno dei quali ha una lista di coppie nome-valore. La documentazione dell'API del foglio di lavoro di Google (http://code.google.com/apis/spreadsheets/code.html) contiene più di informazioni sufficienti per iniziare.
Utilizzando l'API di visualizzazione di Google che consente di inviare query più sofisticate (quasi come SQL) per recuperare solo le righe/colonne necessarie.
Il contenuto del foglio di calcolo viene restituito come feed Atom in modo da poter utilizzare l'analisi XPath o SAX per estrarre il contenuto di un feed di elenco. C'è un esempio di farlo in questo modo (in Java e Javascript solo se ho paura) a http://gqlx.twyst.co.za.
I wrote a simple wrapper intorno Google's .Net client library, espone un database-come l'interfaccia più semplice, con i tipi di record fortemente tipizzato.Ecco alcuni esempi di codice:
public class Entity {
public int IntProp { get; set; }
public string StringProp { get; set; }
}
var e1 = new Entity { IntProp = 2 };
var e2 = new Entity { StringProp = "hello" };
var client = new DatabaseClient("[email protected]", "password");
const string dbName = "IntegrationTests";
Console.WriteLine("Opening or creating database");
db = client.GetDatabase(dbName) ?? client.CreateDatabase(dbName); // databases are spreadsheets
const string tableName = "IntegrationTests";
Console.WriteLine("Opening or creating table");
table = db.GetTable<Entity>(tableName) ?? db.CreateTable<Entity>(tableName); // tables are worksheets
table.DeleteAll();
table.Add(e1);
table.Add(e2);
var r1 = table.Get(1);
C'è anche un fornitore di LINQ che si traduce in google di structured query operators:
var q = from r in table.AsQueryable()
where r.IntProp > -1000 && r.StringProp == "hello"
orderby r.IntProp
select r;
@Kiquenet Cosa intendi? L'ultima versione che vedo di Google.GData. * È 2.2.0 http://www.nuget.org/packages/Google.GData.Documents/ –
https://developers.google.com/google-apps/spreadsheets/ Versión 3.0 API (OAuth, ecc.) – Kiquenet
@Kiquenet Fammi sapere quando Google aggiorna le loro librerie .NET. Ma penso che Google.GData. * 2.2.0 utilizzi già l'API v3. –
(giugno-novembre 2016) La domanda e le sue risposte sono ora out-of-date come: 1) GData APIs sono la precedente generazione di API di Google. Mentre non tutte le API GData sono state deprecate, all the latest Google APIs do non utilizza the Google Data Protocol; e 2) c'è un new Google Sheets API v4 (anche non GData).
Andando avanti da qui, è necessario ottenere the Google APIs Client Library for .NET e utilizzare l'ultimo Sheets API, che è molto più potente e flessibile rispetto a qualsiasi API precedente. Ecco un C# code sample per aiutarti a iniziare. Controlla anche lo .NET reference docs for the Sheets API e lo .NET Google APIs Client Library developers guide.
Se non sei allergico a Python (se lo fai, fai finta che sia pseudocodice; a C#, se desiderato:
- Migrating SQL data to a Sheet (codice di immersione profonda post)
- Formatting text using the Sheets API (codice di immersione profonda post)
- Generating slides from spreadsheet data (codice di immersione profonda post)
- 1. Leggi dati da fogli di calcolo di google doc
- 2. Importa dati da fogli di calcolo di Google in MySQL
- 3. Download di fogli di calcolo Fogli Google da Google Drive su Android
- 4. Filtro a più colonne di fogli di calcolo di Google utilizzando OR
- 5. Inserire uno script in più fogli di calcolo Google
- 6. Servizio Errore: fogli di calcolo su Google Script
- 7. Come posso accedere a fogli di lavoro pubblici con l'API C# di Google Documenti?
- 8. È disponibile un'API per i nuovi fogli Google (fogli di calcolo)?
- 9. Come accedere (leggere, scrivere) a fogli di lavoro Fogli Google con Python?
- 10. Connessione di fogli di calcolo a MySQL con JDBC
- 11. Foglio di calcolo Google SOMMA Confronto dati
- 12. Come pubblicare i dati di Google Form via jQuery e Ajax su fogli di calcolo
- 13. Foglio di calcolo Google con dati da WebSocket
- 14. Foglio di calcolo Google: SUMIF con FIND come criterio
- 15. Accesso al foglio di calcolo in Google Script
- 16. Scaricare un foglio di calcolo da Google Documenti utilizzando Python
- 17. Dati JSON dal foglio di calcolo di Google
- 18. Come integrare Google Drive e il foglio di calcolo API, per lavorare con fogli di calcolo in una determinata cartella di Google Drive?
- 19. Accesso remoto a Google Analytics con ASP.NET
- 20. Sincronizzazione dei dati dell'app nell'account Google
- 21. Google Docs: crea un elenco a discesa usando i dati di un altro foglio di calcolo
- 22. Come posso collegare app Android con fogli di lavoro Fogli Google?
- 23. Python, OpenOffice: manipolazione programmata dei fogli di calcolo
- 24. Come forzare i nuovi fogli di calcolo di Google per aggiornare e ricalcolare?
- 25. Recupera i dati dal foglio di calcolo pubblico di Google utilizzando la libreria gdata?
- 26. Scrittura su una cella vuota nei fogli di calcolo di Google
- 27. Tabella pivot Fogli Google non Aggiornamento
- 28. Foglio di calcolo di Google Documenti visualizza i dati dalla riga che corrisponde a un criterio
- 29. Come si aggiungono le formule a Google Spreadsheet utilizzando Google Apps Script?
- 30. Link di download per fogli di lavoro di Google Esportazione CSV - con più fogli
Cosa dovrei usare per il valore di stringa per il nuovo SpreadsheetsService ("' exampleCo-exampleApp-1' ")? importa ciò che ho messo lì dentro? Grazie! –
Ottieni un elenco di fogli di calcolo: "SpreadsheetQuery query = new SpreadsheetQuery();" dovrebbe leggere "SpreadsheetFeed feed = myService.Query (query);" Ho provato a modificare caratteri non abbastanza modificati! – BobF
_https: //developers.google.com/google-apps/spreadsheets/authorize_ *** Importante: OAuth 1.0 non è più supportato e verrà disattivato il 5 maggio 2015. Se l'applicazione utilizza OAuth 1.0, è necessario eseguire la migrazione a OAuth 2.0 o la tua applicazione smetterà di funzionare. – Kiquenet