首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载所有Google工作表

下载所有Google工作表
EN

Stack Overflow用户
提问于 2019-01-22 18:23:00
回答 2查看 685关注 0票数 2

我想用Google.Apis.Sheets.v4从C#下载谷歌电子表格的所有可用工作表;我写了以下代码,我从谷歌开发人员网页上获得,但在这里它只能通过其id连接特定的工作表:

UserCredential凭证;

代码语言:javascript
运行
复制
        using (var stream =
            new FileStream(@"credentials.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = System.Environment.GetFolderPath(
                System.Environment.SpecialFolder.Personal);


            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            Console.WriteLine("Credential file saved to: " + credPath);
        }

        // Create Google Sheets API service.
        var service = new SheetsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,
        });




        // Define request parameters.
        String spreadsheetId = "1rpmT0S1Naic8wG8xok2cjNJBIgKa8t24C80muc8YVNE";// "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms";
        String range = "Class Data!A1:B4";
        SpreadsheetsResource.ValuesResource.GetRequest request =
                service.Spreadsheets.Values.Get(spreadsheetId, range);

有没有办法下载所有表格的名称和它的电子表格id,这样我的程序就可以通过id逐个连接每个表格并更新数据?提前感谢

EN

回答 2

Stack Overflow用户

发布于 2019-01-22 18:30:15

我认为这取决于您到底想要做什么,因为您的问题不清楚,我怀疑是由于您对API及其功能的误解。

  • 谷歌工作表应用编程接口允许你访问工作表中的内容。
  • 谷歌驱动应用编程接口允许你对实际工作表本身进行文件存储访问。

因此,例如,如果您要下载用户有权访问的所有google工作表的列表,您可以使用Google drive api file.list方法。然后,您可以下载文件本身到您的硬盘驱动器。或者,您可以使用Google sheets api来查看文件本身的大小。

代码语言:javascript
运行
复制
var request = service.Files.List();
request.Q = "mimeType = 'application/vnd.google-apps.spreadsheet'"
var result = request.Execute();

My drive samples

Google drive api上的说明

您需要记住的是Google drive api是一个文件存储api。可以把它想象成windows PC上的文件资源管理器。它包含有关用户有权访问的文件的所有信息。google sheets api只能访问pplication/vnd.google-apps.spreadsheet类型的文件中的数据

获取类型为sheet的文件列表

代码语言:javascript
运行
复制
var driveService = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "Drive Oauth2 Authentication Sample"
            });

var request = driveService.Files.List();
request.Q = "mimeType = 'application/vnd.google-apps.spreadsheet'"
var result = request.Execute();

var fileId = result.FirstOrDefault().Id
var fileId = result.FirstOrDefault().Name

作用域

请记住,要访问用户的数据,您必须拥有用户访问该数据的权限,才能正常工作,您必须请求访问其驱动器数据的权限。以下其中一个作用域应该可以工作。

列出所有文件教程

本教程还可以帮助您使用List All files。您只需添加q参数,以便仅列出特定元数据类型的文件。

票数 2
EN

Stack Overflow用户

发布于 2019-01-23 06:38:20

您可以使用@DaImTo提供的代码来获取驱动器上所有必要的电子表格ID。

然后,您可以使用spreadsheets.get方法来获取特定电子表格上的所有信息,包括工作表名称和ids https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/get

然后,您可以使用spreadsheets.values资源中的各种方法来获取/更新/批量更新工作表中的值。https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values提示:在values.get中只将表名作为range参数的值,将返回包含所有表值的范围,这非常方便。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54306098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档