Pregunta

Estoy teniendo un poco de información en hojas de cálculo de Google como una sola hoja. ¿Hay alguna manera por la cual puedo leer esta información de .NET, proporcionando las credenciales y la hoja de cálculo de direcciones de Google. ¿Es posible el uso de las API de datos de Google. En última instancia lo que necesito para obtener la información de Google hoja de cálculo en un DataTable. ¿Cómo puedo hacerlo? Si alguien lo ha intentado, pls compartir alguna información.

¿Fue útil?

Solución

De acuerdo con la .NET guía del usuario :

Descargar el biblioteca cliente .NET :

Añadir estas declaraciones usando:

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

Autenticación:

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

Obtener una lista de hojas de cálculo:

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

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

Dado un SpreadsheetEntry que ya ha recuperado, se puede obtener una lista de todas las hojas de trabajo en esta hoja de cálculo de la siguiente manera:

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

Y conseguir una alimentación a base de células:

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

Otros consejos

me escribió un simple envoltorio alrededor de Google .Net biblioteca cliente , se expone una interfaz de tipo base de datos más simple, con strongly- mecanografiadas tipos de registro. He aquí algunos ejemplos de código:

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

Hay también un proveedor de LINQ que se traduce en href="http://code.google.com/apis/spreadsheets/docs/2.0/reference.html#ListParameters" de Google estructurado operadores de consulta :

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

(jun-Nov 2016) La pregunta y sus respuestas están ahora fuera de la fecha como: 1) API de GData son la generación anterior de API de Google. Si bien no todas las API de GData han quedado obsoletos, todas las últimas API de Google hacen no el Protocolo de datos de Google ; y 2) hay una nuevo Google Sheets API v4 (también no GData).

En el futuro de aquí, que necesita para obtener la biblioteca de clientes API de Google para .NET y utilizar la última hojas API, que es mucho más potente y flexible que cualquier API anterior. He aquí una muestra de rel="noreferrer"> C # código .NET docs de referencia para el API Sheets y el .NET Google API Client Library guía desarrolladores .

Si usted no es alérgico a Python (si es así, simplemente pretender que es pseudocódigo;)), hice varios videos con un poco más largo, más ejemplos del "mundo real" del uso de la API se puede aprender de y migrar a C # si se desea:

Usted puede hacer lo que estás haciendo varias maneras:

  1. El uso de la biblioteca # C hoja de cálculo de Google (como en la respuesta de Tacoman667) en busca de un ListFeed que puede devolver una lista de filas (ListEntry en la jerga Google) cada uno de los cuales tiene una lista de pares de nombre y valor. La API de hojas de cálculo de Google ( http://code.google.com/apis/spreadsheets/code .html ) documentación tiene información más que suficiente para empezar.

  2. El uso de la API de visualización de Google que le permite enviar más sofisticado (casi como SQL) consultas a buscar sólo las filas / columnas que se requieren.

  3. El contenido de hojas de cálculo se devuelven como Atom alimenta esta manera puede utilizar XPath o SAX análisis para extraer el contenido de un feed lista. No es un ejemplo de hacerlo de esta manera (en Java y Javascript Sólo cuando tengo miedo) en http: // gqlx.twyst.co.za .

Estoy bastante seguro de que habrá algunos C # SDK / kits de herramientas en Google Code para esto. He encontrado éste , pero puede haber otros por lo que vale la pena tener un vistazo por .

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

Esto debería empezar. No he jugado con él últimamente, pero he descargado una versión muy antigua de un tiempo atrás y parecía bastante sólido. Éste se actualiza a Visual Studio 2008, así que echa un vistazo a los documentos!

Esta página del blog Twilio realizado el 24 de marzo 2017 Marcos Placona puede ser útil.

de cálculo de Google y .NET Core

Google.Api.Sheets.v4 OAuth2 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top