3

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

设置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

我还尝试了许多不同形式的提要 url,尤其是一页 API 文档建议的那种(用 替换keyResourceId这实际上返回了一个空提要,而不是 400):

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

如何只获取一个文件?

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

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

1 回答 1

3

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

        /// <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;
        }
于 2012-12-05T18:06:58.557 回答