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

标签 google-sheets

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

设置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,这实际上返回了一个空 Feed,而不是 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/ 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;
        }

关于google-sheets - Google Spreadsheet API v3 - 如何通过 id 获取单个电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13680708/

相关文章:

google-apps-script - 使用 Google Apps 脚本删除 Google 表格中的行

javascript - 如何将电子表格中的所有数据捕获到谷歌表单

google-apps-script - 如何复制具有 protected 范围的工作表?

google-apps-script - 如何在 Google Apps 脚本中根据单元格的背景颜色反转字体颜色?

csv - Google Apps Script Utilities.parseCsv() 更改小数和千位分隔符

google-apps-script - 谷歌脚本 : Conditionally copy rows from one spreadsheet to another

regex - 使用 RegExMatch 检查单元格是否包含 Google 电子表格中的数字

google-sheets - 如何在 Google 表格中查找另一行中有数字的行的总和

google-sheets - 如何反转下拉框 - Google 表格

google-apps-script - 如何查找工作表是否为空?