2016-11-28 5 views
0

BatchUpdateを使用してUpdate()および複数のGridCoordinate範囲を使用して1つのNamedRangeを更新できますが、BatchUpdateでNamedRangesを更新する方法を考えることができません。これはどうですか?C#GoogleSheets APIを使用して複数のNamedRangesを更新するにはどうすればよいですか?

私はこのように行うことができ、単一のNamedRange更新:

 ValueRange vr = new ValueRange(); 
     vr.Range = "aRange"; 
     var l1 = new List<object>(); 
     l1.Add("Here"); 
     IList<IList<object>> l2 = new List<IList<object>>(); 
     l2.Add(l1); 
     vr.Values = l2; 
     var rqe2 = service.Spreadsheets.Values.Update(vr, spreadsheetId, "aRange"); 
     rqe2.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED; 
     rqe2.Execute(); 

、私はこのように行うことができますBATCHUPDATE経由GridCoordinate:あなたは上記のアップデートの2種類を使用している

 BatchUpdateSpreadsheetRequest busr = new BatchUpdateSpreadsheetRequest(); 
     busr.Requests = new List<Request>(); 
     Request r = new Request(); 
     busr.Requests.Add(r); 
     r.UpdateCells = new UpdateCellsRequest(); 

     var gc = new GridCoordinate(); 
     gc.ColumnIndex = 0; 
     gc.RowIndex = 5; 
     gc.SheetId = 0; 

     r.UpdateCells.Start = gc; 
     r.UpdateCells.Fields = "*"; 
     r.UpdateCells.Rows = new List<RowData>(); 

     var rd = new RowData(); 
     r.UpdateCells.Rows.Add(rd); 
     rd.Values = new List<CellData>(); 
     var cd = new CellData(); 
     cd.UserEnteredValue = new ExtendedValue(); 
     cd.UserEnteredValue.StringValue = "UserEnteredValue"; 
     rd.Values.Add(cd); 

     SpreadsheetsResource.BatchUpdateRequest bur = service.Spreadsheets.BatchUpdate(busr, spreadsheetId); 
     bur.Execute(); 

答えて

2

values.update & spreadsheets.batchUpdate

values APIコレクションは、A1範囲(名前付き範囲、シート名、行番号(1ベース)、および列文字を含む)で動作します。 spreadsheets APIコレクションは、GridRange,GridCoordinateDimensionRangeなどのオブジェクトで動作し、すべてシートIDと行/列インデックス(0ベース)で動作します。

名前付き範囲内の値のバッチ更新を行う場合は、spreadsheets.batchUpdate APIではなく、values.batchUpdate APIを使用します。

C#のAPIは、おそらくSpreadsheetsResource.ValuesResource.BatchUpdateRequestを使用して、リファレンスドキュメントの情報をかなり簡単にマッピングする必要があります。

+1

が良好に機能しました。もう一つのトリックは、ValueInputOptionを次のように設定しなければならないということでした。 var buvr = new BatchUpdateValuesRequest(); buvr.ValueInputOption =((int)SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED).ToString(); – mcmillab

関連する問題