У меня есть информация в таблицах Google в виде отдельного листа. Есть ли способ, с помощью которого я могу прочитать эту информацию из .NET, указав учетные данные google и адрес электронной таблицы. Возможно ли использование API данных Google. В конечном итоге мне нужно получить информацию из электронной таблицы Google в DataTable. Как мне это сделать? Если кто-то попытался это сделать, pls поделится некоторой информацией.
Доступ к электронным таблицам Google с помощью С# с использованием API данных Google
Ответ 1
В соответствии с .NET руководство пользователя:
Загрузите .NET клиентскую библиотеку:
Добавьте эти операторы:
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;
Аутентифицировать:
SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
myService.setUserCredentials("[email protected]", "mypassword");
Получить список электронных таблиц:
SpreadsheetQuery query = new SpreadsheetQuery();
SpreadsheetFeed feed = myService.Query(query);
Console.WriteLine("Your spreadsheets: ");
foreach (SpreadsheetEntry entry in feed.Entries)
{
Console.WriteLine(entry.Title.Text);
}
Учитывая, что вы уже получили таблицу с таблицами, вы можете получить список всех листов в этой таблице следующим образом:
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);
}
И получите канал на основе ячейки:
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);
}
Ответ 2
Я написал простую обертку вокруг Google.Net клиентская библиотека, он предоставляет более простой интерфейс, подобный базе данных, с сильно типизированными типами записей. Вот пример кода:
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);
Также существует поставщик LINQ, который переводит на google структурированные операторы запросов:
var q = from r in table.AsQueryable()
where r.IntProp > -1000 && r.StringProp == "hello"
orderby r.IntProp
select r;
Ответ 3
(июнь-ноябрь 2016 г.) Вопрос и его ответы теперь устаревают: 1) API-интерфейсы GData - это предыдущее поколение API Google. Хотя не все API-интерфейсы GData устарели, все последние API Google не используют Протокол данных Google; и 2) есть новый Google Таблицы API v4 (также не GData).
Двигаясь вперед, вы должны получить Клиентскую библиотеку API Google для .NET и использовать последнюю Листы API, который намного более мощный и гибкий, чем любой предыдущий API. Здесь пример кода С#, чтобы помочь вам начать работу. Также проверьте .NET справочные документы для API листов и .NET разработчиков API-интерфейсов API API Google.
Если вы не страдаете аллергией на Python (если хотите, просто притворитесь, что это псевдокод;)), я сделал несколько видеороликов с более длинными и более "реальными" примерами использования API, из которого вы можете учиться, и перейти на С# при желании:
- Перенос данных SQL на лист (глубокое погружение кода post)
- Форматирование текста с помощью API-интерфейсов (глубокое погружение кода post)
- Создание слайдов из данных электронных таблиц (глубокое погружение кода post)
Ответ 4
Вы можете сделать то, что задаете несколько способов:
-
Использование библиотеки электронных таблиц Google С# (как в ответе Tacoman667) для получения списка ListFeed, который может возвращать список строк (ListEntry в языке Google), каждый из которых имеет список пар имя-значение. В API электронной таблицы Google (http://code.google.com/apis/spreadsheets/code.html) имеется более чем достаточно информации для начала работы.
-
Используя API визуализации Google, который позволяет отправлять более сложные (почти как SQL) запросы, чтобы извлекать только требуемые строки/столбцы.
-
Содержимое электронной таблицы возвращается как каналы Atom, поэтому вы можете использовать синтаксический анализ XPath или SAX для извлечения содержимого фида списка. Существует пример этого (в Java и Javascript, хотя я боюсь) в http://gqlx.twyst.co.za.
Ответ 5
Я уверен, что для этого будут некоторые SDK/инструментарий С# для Google Code. Я нашел этот, но могут быть и другие, поэтому стоит осмотреть.
Ответ 6
http://code.google.com/apis/gdata/articles/dotnet_client_lib.html
Это должно помочь вам начать. Я не играл с ним в последнее время, но я загрузил очень старую версию некоторое время назад, и это казалось довольно солидным. Этот файл обновляется до Visual Studio 2008, поэтому ознакомьтесь с документами.