首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用谷歌数据API通过C#访问谷歌电子表格

使用谷歌数据API通过C#访问谷歌电子表格
EN

Stack Overflow用户
提问于 2009-04-07 13:13:51
回答 5查看 130.3K关注 0票数 106

我有一些信息在谷歌电子表格作为一个单一的工作表。有没有什么方法可以通过提供谷歌凭证和电子表格地址来从.NET读取此信息。有没有可能使用Google Data API。最终,我需要在DataTable中从谷歌电子表格中获取信息。我该怎么做呢?如果有人尝试过,请分享一些信息。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-07 14:43:07

根据.NET user guide的说法:

下载.NET client library

添加这些using语句:

代码语言:javascript
复制
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;

身份验证:

代码语言:javascript
复制
SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "mypassword");

获取电子表格列表:

代码语言:javascript
复制
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,您可以获得此电子表格中所有工作表的列表,如下所示:

代码语言:javascript
复制
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);
}

并获取基于单元格的提要:

代码语言:javascript
复制
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);
}
票数 183
EN

Stack Overflow用户

发布于 2009-05-11 03:52:36

围绕Google's .Net client libraryI wrote a simple wrapper,它公开了一个更简单的类似数据库的接口,具有强类型的记录类型。下面是一些示例代码:

代码语言:javascript
复制
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提供程序

代码语言:javascript
复制
var q = from r in table.AsQueryable()
        where r.IntProp > -1000 && r.StringProp == "hello"
        orderby r.IntProp
        select r;
票数 23
EN

Stack Overflow用户

发布于 2018-06-04 20:38:05

Marcos Placona在2017年3月24日制作的Twilio博客页面可能会有所帮助。

Google Spreadsheets and .NET Core

它引用了Google.Api.Sheets.v4OAuth2

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/725627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档