因此,这些示例向您展示了如何获取获取驱动器上所有电子表格的电子表格提要。
设置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 文档中建议的一种(用
key
替换 ResourceId
,这实际上返回了一个空提要,而不是 400):https://spreadsheets.google.com/feeds/worksheets/key/private/full
如何只获取一个文件?
相反,我必须获取所有内容并查询客户端:
var feed = SpreadsheetFeedFor(query);
var spreadsheet = (SpreadsheetEntry)feed.Entries.Single(e => e.SelfUri == resourceUri);
最佳答案
那么,除了工作表的集合之外,什么是电子表格?显然,从电子表格的角度来看,没有什么是离散的 - 带有文件名的东西,您可以通过 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;
}
关于google-sheets - Google Spreadsheet API v3 - 如何通过 id 获取单个电子表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13680708/