Frage

Ich habe einige Informationen in Google Text & Tabellen als ein einzelnes Blatt. Gibt es eine Möglichkeit, durch die ich diese Informationen von .NET durch die Bereitstellung der Google-Anmeldeinformationen und Tabellenadresse lesen kann. Ist es möglich, Google Data APIs. Letztlich muss ich die Informationen von Google-Tabelle in einer Datentabelle erhalten. Wie kann ich es tun? Wenn jemand versucht hat, pls einige Informationen teilen.

War es hilfreich?

Lösung

Nach dem .NET Benutzerhandbuch :

Laden Sie die .NET-Client-Bibliothek :

Fügen Sie diese mit Anweisungen:

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

Authentifizieren:

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

Hier finden Sie eine Liste von Tabellen:

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

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

Bei einer SpreadsheetEntry Sie bereits abgerufen haben, können Sie eine Liste aller Arbeitsblätter in dieser Tabelle erhalten können wie folgt:

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

Und Sie erhalten eine Zelle basierte Feed:

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

Andere Tipps

Ich schrieb einen einfachen Wrapper um Google .Net-Client-Bibliothek , macht es eine einfachere Datenbank-ähnliche Oberfläche, mit strongly- typisierten Datensatztypen. Hier ist ein Beispielcode:

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

Es gibt auch ein LINQ-Anbieter, die auf Googles Abfrage Betreiber strukturiert :

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

(Jun-Nov 2016) Die Frage und ihre Antworten sind jetzt out-of-date wie: 1) GData APIs die vorherige Generation von Google APIs sind. Obwohl nicht alle GData APIs veraltet sind, die neuesten Google-APIs tun nicht der Google Data Protocol ; und 2) eine rel="noreferrer"> (auch nicht GData).

Für die Zukunft von hier, müssen Sie bekommen die Google APIs-Client-Bibliothek für .NET und verwenden die neueste Sheets API , die viel leistungsfähiger und flexibler als alle bisherigen API ist. Hier ist ein C # Codebeispiel zu helfen, Ihnen den Start. Überprüfen Sie auch die .NET Referenz docs für die Blätter API und .NET Google APIs-Client-Bibliothek Entwickler Guide .

Wenn Sie nicht allergisch auf Python sind (wenn Sie sind, einfach so tun, es ist Pseudo-Code;)), machte ich mehrere Videos mit etwas mehr, mehr „real-world“ Beispiele für die API verwenden Sie lernen können und wandern zu C #, falls gewünscht:

Sie können tun, was Sie mehrere Möglichkeiten sind gefragt:

  1. Mit Google Tabelle C # Bibliothek (wie in Tacoman667 Antwort) eine listfeed zu holen, die eine Liste von Zeilen (list in Google parlance) zurückkehren kann, von denen jede eine Liste von Name-Wert-Paare hat. Die Google-Tabelle API ( http://code.google.com/apis/spreadsheets/code .html ) Dokumentation hat mehr als genug Informationen, um Ihnen den Start.

  2. Mit der Google-Visualisierung API, die Sie einreichen anspruchsvollere (fast wie SQL) Abfragen können nur die Zeilen / Spalten holen Sie benötigen.

  3. Die Tabelle Inhalt zurückgegeben werden als Atom-Feeds, so können Sie XPath oder SAX verwenden Parsen den Inhalt eines Listenfeed zu extrahieren. Es ist ein Beispiel es auf diese Weise zu tun (in Java und Javascript nur wenn ich Angst habe) unter http: // gqlx.twyst.co.za .

Ich bin mir ziemlich sicher, es werde für dieses einig C # SDKs / Toolkits auf Google Code sein. Ich fand diese , aber es könnte noch andere sein, so dass es sich lohnt, um eine Browse mit .

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

Das sollten Sie beginnen. Ich habe nicht mit ihm in letzter Zeit gespielt, aber ich heruntergeladen eine sehr alte Version eine Weile zurück, und es schien ziemlich solide. Dies wird aktualisiert, um Visual Studio 2008 als auch so die Dokumentation überprüfen!

Diese Twilio Blog-Seite gemacht am 24. März 2017 von Marcos Placona kann hilfreich sein.

Google Tabellen und .NET-Core

Es verweist Google.Api.Sheets.v4 und OAuth2 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top