Google Sheets API识别工作表结尾

时间:2018-10-07 01:45:51

标签: google-sheets-api

我通过API将行添加到Google表格中。为此,我使用C#Google.API.Sheets.v4 NuGet包。我几乎计算出自己想写的单元格。

我的问题是,当我到达工作表的末尾时,我在应用程序中对此一无所知。似乎没有错误或任何东西。数据刚刚丢失!

当我在不使用API​​的情况下使用表格时,我会注意到并只需按以下按钮:

I mean this bottom functionality

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

代码看起来很像这里提供的更新代码: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update

我使用电子表格电子表格.values.update功能并将其写入尚不存在的底部行

简而言之,我需要在我的应用程序中以某种方式在底部添加“更多行”功能

奖金问题:由于这个问题,我丢失了一些数据。有关如何恢复它的任何想法?

1 个答案:

答案 0 :(得分:0)

我找到了令人满意的解决方法。而不是像表here那样使用电子表格.values.append功能。

将其设置为InsertDataOptionEnum.OVERWRITE以模仿该行为很重要,否则您最终将每个新单元格都放在单独的行中。

OLD(使用.Update())

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

NEW(使用.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