代码之家  ›  专栏  ›  技术社区  ›  CodingYourLife

Google Sheets API识别工作表末尾

  •  0
  • CodingYourLife  · 技术社区  · 7 年前

    我通过API将行添加到Google工作表中。为此,我使用C#Google。应用程序编程接口。被单。v4 NuGet软件包。我基本上是计算我想在自己身上写字的单元格。

    我的问题是,当我到达工作表的末尾时,我在应用程序中不知道这一点。似乎没有什么差错。数据丢失了!

    当我在没有API的情况下使用工作表时,我会注意到并按下此按钮:

    I mean this bottom functionality

    我想在应用程序中写入一行之前添加一行,或者识别工作表的末尾。

    代码与此处提供的更新代码非常相似: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update

    我使用电子表格。价值观更新功能并写入尚不存在的最下面一行

    总之,我需要在我的应用程序中使用“底部有更多行”功能

    额外问题:因为这个问题,我丢失了一些数据。关于如何恢复它有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   CodingYourLife    7 年前

    我找到了一个令人满意的解决办法。而不是使用电子表格。价值观更新我使用电子表格的功能。价值观附加功能,如图所示 here .

    将其设置为InsertDataOptionEnum很重要。覆盖以模仿该行为,否则每个新单元格都将位于单独的一行中。

    OLD(使用.Update())

    SpreadsheetsResource.ValuesResource.UpdateRequest request = sheetsService.Spreadsheets.Values.Update(valueRange, spreadsheetId, range);
    request.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
    

    新增(使用.Append())

    //use AppendRequest instead of UpdateRequest to avoid lost lines on end of sheet
    SpreadsheetsResource.ValuesResource.AppendRequest request = sheetsService.Spreadsheets.Values.Append(valueRange, spreadsheetId, range);
    request.ValueInputOption = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.USERENTERED;
    request.InsertDataOption = SpreadsheetsResource.ValuesResource.AppendRequest.InsertDataOptionEnum.OVERWRITE; //overwrite when writing cells or it will be new line per cell
    
    推荐文章