【问题标题】:How to export a specific PUBLIC spreadsheet to csv如何将特定的 PUBLIC 电子表格导出到 csv
【发布时间】:2015-08-09 21:09:30
【问题描述】:

所以我正在尝试将此公共工作表导出为 CSV。

我了解到我可以使用以下模式,只需在我的浏览器中(无需登录谷歌):

https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key={0}&exportFormat=csv

这很棒,而且看起来很简单。但是,当我尝试在我的应用程序中执行此操作时,它似乎希望我登录。和登录过程,我无法上班。

我尝试了多种解决方案。使用旧的身份验证方法,我设法得到这样的工作:

var spreadsheetService = new SpreadsheetsService(name);

            var csv = string.Empty;
            using (var sr = new StreamReader(spreadsheetService.Query(exportUrl)))
            {
                csv = sr.ReadToEnd();
            }

这很好用,但现在凭据已移至 OAuth,这不再适用于我。我无法找到将 OAuth 凭据添加到此方法的方法。

因此,我尝试按照示例进行操作,结果如下:

    var certificate = new X509Certificate2(data, "notasecret", X509KeyStorageFlags.Exportable);

    var credential = new ServiceAccountCredential(
       new ServiceAccountCredential.Initializer(serviceEmail)
       {
           Scopes = new[] { PlusService.Scope.PlusMe }
       }.FromCertificate(certificate));

    credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Wait();

    var service = new PlusService(new BaseClientService.Initializer()
                                      {
                                          HttpClientInitializer = credential,
                                          ApplicationName = "My app",
                                      });

这似乎确实有效,但我不知道下一步是什么。如何在 PlusService 上执行我的导出查询?甚至可能吗?我可以改为将 OAuth 凭据添加到 SpreadsheetService 吗?

【问题讨论】:

    标签: c# google-sheets gdata google-spreadsheet-api


    【解决方案1】:

    要从云端硬盘下载文件并将其导出为 csv,您必须使用云端硬盘(files.get),然后调用导出链接。

    还可以查看此documentation 以了解有关从云端硬盘下载文件的更多信息。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多