Google Spreadsheet API v3 - 如何通过ID获取单个电子表格

时间:2012-12-03 09:50:37

标签: google-sheets

因此,这些示例向您展示了如何获取可在驱动器上获取所有电子表格的电子表格Feed。

设置query.Uri的格式是什么?如果我使用entry.SelfUrl或以下代码,我收到400错误请求

SpreadsheetQuery query = new SpreadsheetQuery();
query.Uri = new Uri(string.Format("{0}/{1}", DocumentsListQuery.documentsBaseUri, entry.ResourceId)); //400
// query.Uri = entry.SelfUri.Content; //also a 400

我还尝试了很多不同形式的Feed网址,尤其是单页API文档建议的那种(将key替换为ResourceId,这实际上返回了一个null feed,而不是a 400):

https://spreadsheets.google.com/feeds/worksheets/key/private/full

如何获取一个文件?

相反,我必须获取所有并查询客户端:

 var feed = SpreadsheetFeedFor(query);
 var spreadsheet = (SpreadsheetEntry)feed.Entries.Single(e => e.SelfUri == resourceUri);

1 个答案:

答案 0 :(得分:3)

那么,除了工作表集合之外,什么是电子表格?显然,从电子表格的角度来看,没有什么是离散的 - 具有文件名的东西,你可以使用Docs API ... soo,获得电子表格,我使用了获取给定电子表格工作表的示例代码(通过其驱动器的ResourceId / key):

        /// <summary>
        /// fetch a worksheet feed for a given spreadsheet
        /// </summary>
        /// <param name="resourceId"></param>
        /// <returns></returns>
        protected WorksheetFeed WorksheetsFor(string resourceId)
        {
            var path = "https://spreadsheets.google.com/feeds/worksheets/{0}/private/full".Substitute(resourceId);
            WorksheetQuery query = new WorksheetQuery(path);
            WorksheetFeed feed = SpreadsheetsService.Query(query);
            return feed;
        }