public async Task <Sheet> AddSheet(string name) { var sheet = new Sheet(this, Sheets.Count, name); Sheets.Add(sheet); var batchRequest = new BatchUpdateSpreadsheetHelper(ID); batchRequest.Add((request) => { // By default, a spreadsheet already has one sheet. // If there is more than one sheet, create a new one. // Otherwise, just update the title of the first one. if (Sheets.Count > 1) { request.AddSheet = new AddSheetRequest() { Properties = new SheetProperties() { SheetId = Sheets.Count - 1, Title = name, GridProperties = new GridProperties() { ColumnCount = 1, RowCount = 1, } }, }; } else { request.UpdateSheetProperties = new UpdateSheetPropertiesRequest() { Properties = new SheetProperties() { Title = name, GridProperties = new GridProperties() { ColumnCount = 1, RowCount = 1, } }, Fields = "*", }; } }); await batchRequest.ExecuteAsync(Service); return(sheet); }