private Request CreateUpdateRequest(GoogleSheetUpdateRequest r)
        {
            var sheetId = GetSheetId(r.SheetName);

            if (sheetId == null)
            {
                throw new ArgumentException($"Не найдена таблица {r.SheetName}");
            }

            var gc = new GridCoordinate
            {
                ColumnIndex = r.ColumnStart,
                RowIndex    = r.RowStart,
                SheetId     = sheetId
            };
            var request = new Request
            {
                UpdateCells = new UpdateCellsRequest {
                    Start = gc, Fields = "*"
                }
            };
            var listRowData = new List <RowData>();

            foreach (var row in r.Rows)
            {
                var listCellData = new List <CellData>();

                foreach (var cell in row)
                {
                    var cellData = CreateCellData(cell);
                    listCellData.Add(cellData);
                }

                var rowData = new RowData()
                {
                    Values = listCellData
                };
                listRowData.Add(rowData);
            }

            request.UpdateCells.Rows = listRowData;
            return(request);
        }
Пример #2
0
        private static IEnumerable <GoogleSheetUpdateRequest> CreateUpdateRequests(string sheetName, int columnStart,
                                                                                   int rowStart, object[] values)
        {
            for (int i = 0; i < values.Length; i++)
            {
                var value = values[i];
                if (value == null)
                {
                    continue;
                }

                var row = new GoogleSheetRow();
                row.Add(GoogleSheetCell.Create(value));

                var request = new GoogleSheetUpdateRequest(sheetName)
                {
                    ColumnStart = columnStart + i,
                    RowStart    = rowStart,
                    Rows        = { row },
                };
                yield return(request);
            }
        }