我有一些信息在谷歌电子表格作为一个单一的工作表。有没有什么方法可以通过提供谷歌凭证和电子表格地址来从.NET读取此信息。有没有可能使用Google Data API。最终,我需要在DataTable中从谷歌电子表格中获取信息。我该怎么做呢?如果有人尝试过,请分享一些信息。
发布于 2009-05-07 14:43:07
根据.NET user guide的说法:
添加这些using语句:
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;
身份验证:
SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "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);
}
给定您已经检索到的SpreadsheetEntry,您可以获得此电子表格中所有工作表的列表,如下所示:
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);
}
发布于 2009-05-11 03:52:36
围绕Google's .Net client library的I wrote a simple wrapper,它公开了一个更简单的类似数据库的接口,具有强类型的记录类型。下面是一些示例代码:
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);
还有一个翻译成谷歌structured query operators的LINQ提供程序
var q = from r in table.AsQueryable()
where r.IntProp > -1000 && r.StringProp == "hello"
orderby r.IntProp
select r;
发布于 2018-06-04 20:38:05
Marcos Placona在2017年3月24日制作的Twilio博客页面可能会有所帮助。
https://stackoverflow.com/questions/725627
复制相似问题