【问题标题】:Writing more than 1000 rows into Google Sheet将超过 1000 行写入 Google 表格
【发布时间】:2021-06-12 16:16:38
【问题描述】:

我必须在 Google 工作表中写入 1000 多行,因此我需要增加行数(当我尝试写入 4640 行时,我得到了 Google.Apis.Requests.RequestError )。

在 Stackoverflow 网站上搜索得到的信息告诉我,我需要使用 UpdateSheetPropertiesRequestInsertDimensionRequest 并创建一个可以在相同 电子表格中的新请求。 BatchUpdate 调用。

基于 Stackoverflow 中的一个 Python 示例,我设置了 InsertDimensionRequest 实例的属性并将它们包含在我现有的代码中(= Ian Preston 的公开 C# 代码)。

代码如下所示:

public void AddCells(GoogleSheetParameters googleSheetParameters, List<GoogleSheetRow> rows)
        {
            var requests = new BatchUpdateSpreadsheetRequest { Requests = new List<Request>() }; //Existing code

            int sheetId = GetSheetId(_sheetsService, _spreadsheetId, googleSheetParameters.SheetName); //Existing code

            InsertDimensionRequest insertDimensionRequest = new InsertDimensionRequest(); //Added code
            
            insertDimensionRequest.Range.SheetId = sheetId; //Added code
            insertDimensionRequest.Range.Dimension = "ROWS"; //Added code
            insertDimensionRequest.Range.StartIndex = 999; //Added code
            insertDimensionRequest.Range.EndIndex = 6999; //Added code
            insertDimensionRequest.InheritFromBefore = false; //Added code
            
            var request = new Request { UpdateCells = new UpdateCellsRequest { Start = gc, Fields = "*" } };  //Existing code
            //some code here

            var request1 = new Request { ???????? }; //code to be added - how should the request look like?

            requests.Requests.Add(request);  //Existing code
            requests.Requests.Add(request1); //Added code
         
        }

但我不知道如何在 C# 中创建新请求。

我的问题是:如何创建这样的请求(在我的代码中命名为 request1)?

【问题讨论】:

    标签: c# google-sheets-api


    【解决方案1】:

    我已经找到答案了。

    DimensionRange dr = new DimensionRange
                {
                    SheetId = sheetId,
                    Dimension = "ROWS",
                    StartIndex = 999,
                    EndIndex = 6999 // adding extra 6000 rows
                };
    
    var request1 = new Request { InsertDimension = new InsertDimensionRequest { Range = dr, InheritFromBefore = false } };    
    
    

    然后(请求的顺序很重要):

    requests.Requests.Add(request1);
    requests.Requests.Add(request);
    

    也可以使用 userEnteredValue。这会清除工作表,并且对我来说莫名其妙地将行数设置为未知值,但至少设置为 4640。

    GridRange dr2 = new GridRange
                {
                    SheetId = sheetId
                };
    
    var request2 = new Request { UpdateCells = new UpdateCellsRequest { Range = dr2, Fields = "userEnteredValue" } };
    

    然后(请求的顺序可能也很重要):

    requests.Requests.Add(request2);
    requests.Requests.Add(request);
    

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多