Question

Je vais avoir des informations dans Google Spreadsheets comme une seule feuille. Y at-il moyen par lequel je peux lire ces informations de .NET en fournissant les informations d'identification Google et adresse une feuille de calcul. Est-il possible d'utiliser Google API de données. En fin de compte, je dois obtenir les informations de feuille de calcul Google dans un DataTable. Comment puis-je le faire? Si quelqu'un a tenté, pls partager certaines informations.

Était-ce utile?

La solution

Selon le .NET Guide de l'utilisateur :

Télécharger le bibliothèque client .NET :

Ajoutez ces déclarations en utilisant:

using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;

Authentifier:

SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "mypassword");

Obtenir une liste des feuilles de calcul:

SpreadsheetQuery query = new SpreadsheetQuery();
SpreadsheetFeed feed = myService.Query(query);

Console.WriteLine("Your spreadsheets: ");
foreach (SpreadsheetEntry entry in feed.Entries)
{
    Console.WriteLine(entry.Title.Text);
}

Étant donné un SpreadsheetEntry que vous avez déjà récupéré, vous pouvez obtenir une liste de toutes les feuilles de calcul dans cette feuille de calcul comme suit:

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

Et obtenir une alimentation à base de cellules:

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

Autres conseils

j'ai écrit d'un simple emballage autour bibliothèque client .Net de Google, il expose une interface comme base de données plus simple, avec strongly- types d'enregistrements typés. Voici quelques exemples de code:

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("you@gmail.com", "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);

Il y a aussi un fournisseur LINQ qui se traduit par structurés opérateurs de requête :

var q = from r in table.AsQueryable()
        where r.IntProp > -1000 && r.StringProp == "hello"
        orderby r.IntProp
        select r;

(juin-novembre 2016) La question et ses réponses sont maintenant hors de date: 1) API GData sont la génération précédente d'API Google. Bien que toutes les API GData ont été désapprouvés, toutes les dernières API Google faire pas le protocole Google Data ; et 2) il y a un nouvelle API Google Sheets v4 (pas non plus GData).

Aller de l'avant d'ici, vous devez obtenir les API Google Client Library for .NET et utiliser la dernière API feuilles , ce qui est beaucoup plus puissant et flexible que toute API précédente. Voici un C # exemple de code pour vous aider à démarrer. Vérifiez également le docs de référence .NET pour l'API Sheets et .NET développeurs API Google client Library Guide .

Si vous n'êtes pas allergique à Python (si vous êtes, prétendre que c'est pseudocode;)), j'ai fait plusieurs vidéos avec des exemples un peu plus, plus « monde réel » de l'utilisation de l'API, vous pouvez apprendre et migrer vers C # si on le souhaite:

Vous pouvez faire ce que vous demandez plusieurs façons:

  1. En utilisant une feuille de calcul Google bibliothèque C # (comme dans la réponse de Tacoman667) pour aller chercher un ListFeed qui peut retourner une liste de lignes (ListEntry dans le langage Google) dont chacun a une liste de paires nom-valeur. L'API feuille de calcul Google ( http://code.google.com/apis/spreadsheets/code .html ) la documentation a plus de suffisamment d'informations pour vous aider à démarrer.

  2. En utilisant l'API de visualisation Google qui vous permet de présenter plus sophistiqués (presque comme SQL) requêtes pour récupérer uniquement les lignes / colonnes dont vous avez besoin.

  3. Le contenu de la feuille de calcul sont retournés sous forme Atom afin que vous puissiez utiliser XPath ou l'analyse syntaxique SAX pour extraire le contenu d'un flux de liste. Il est un exemple de le faire de cette façon (en Java et Javascript que si j'ai peur) http: // gqlx.twyst.co.za .

Je suis sûr qu'il y aura quelques C # SDKs / boîtes à outils sur Google Code pour cela. J'ai trouvé celui-ci , mais il peut y avoir d'autres il vaut la peine d'avoir un parcours autour .

http://code.google.com/apis/gdata/articles /dotnet_client_lib.html

Cela devrait vous aider à démarrer. Je ne l'ai pas joué avec elle ces derniers temps mais je téléchargé une version d'une très ancienne en arrière et il semblait assez solide. Celui-ci est mis à jour Visual Studio 2008 bien vérifier si les docs!

Cette page de blog Twilio fait le 24 Mars 2017 par Marcos Placona peut être utile.

Google Spreadsheets et Core .NET

Il fait référence Google.Api.Sheets.v4 OAuth2 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top