Добавление заметки в ячейку в гугл листах c# - PullRequest
0 голосов
/ 19 марта 2020

Можно ли добавлять заметки в ячейки с помощью Google? Apis.Sheets.v4?

Кажется возможным в python: Можно ли использовать API электронных таблиц Google для добавления комментария в ячейку? , но у меня ничего не получилось продублируйте его на c#, Вставьте комментарий в Google Sheet с помощью google-sheet-api описывает, как добавить его с помощью вызова https, но я бы предпочел использовать библиотеку Google c#, а не запускать отправка HTTP-звонков самостоятельно, если это вообще возможно. Было бы очень полезно, если кто-то знает, как, или может указать мне на рабочий пример.

Заранее спасибо.

Используя совет Рафы Гильермоса, я получил его на работу.

        public async void AddNote(string sheet, int column, int row, int sheetId, string noteMessage)
        {
            await Task.Delay(1);

            var requests = new List<Request>();


            // Grid range for a single cell, end column, and row have to be +1, otherwise, sheet throws error trying to write outside bounds.
            var gridRange = new Google.Apis.Sheets.v4.Data.GridRange
            {
                EndColumnIndex = column + 1, StartColumnIndex = column, EndRowIndex = row + 1, StartRowIndex = row, SheetId = sheetId
            };

            // Building a request for update cells.
            var request = new Google.Apis.Sheets.v4.Data.Request();
            request.UpdateCells = new Google.Apis.Sheets.v4.Data.UpdateCellsRequest();
            request.UpdateCells.Range = gridRange;
            request.UpdateCells.Fields = "note";
            request.UpdateCells.Rows = new List<Google.Apis.Sheets.v4.Data.RowData>();
            request.UpdateCells.Rows.Add(new Google.Apis.Sheets.v4.Data.RowData());
            request.UpdateCells.Rows[0].Values = new List<Google.Apis.Sheets.v4.Data.CellData>();
            request.UpdateCells.Rows[0].Values.Add(new Google.Apis.Sheets.v4.Data.CellData());
            request.UpdateCells.Rows[0].Values[0].Note = noteMessage;

            requests.Add(request);

            var requestBody = new Google.Apis.Sheets.v4.Data.BatchUpdateSpreadsheetRequest();
            requestBody.Requests = requests;

            var service = _authenticatorService.GetSheetsService(new[] { SheetsService.Scope.Spreadsheets} );

            var batchRequest = service.Spreadsheets.BatchUpdate(requestBody, _spreadsheetId);
            batchRequest.Execute();
        }

_authenticatorService предоставляет сервис аутентифицированных листов для работы.

1 Ответ

0 голосов
/ 19 марта 2020

Ответ:

Точно так же, как и python, необходимо создать заметку как пакетный запрос в C#.

Фрагменты кода. :

Вам необходимо сформировать запрос данных в виде списка, например:

List<Data.Request> requests = new List<Data.Request>();

и присвоить значения телу запроса для пакета:

Data.BatchUpdateSpreadsheetRequest requestBody = new Data.BatchUpdateSpreadsheetRequest();
requestBody.Requests = requests;

перед сборкой запрос объекта:

SpreadsheetsResource.BatchUpdateRequest request = sheetsService.Spreadsheets.BatchUpdate(requestBody, spreadsheetId);

и выполнение запроса:

Data.BatchUpdateSpreadsheetResponse response = request.Execute();

Дополнительная информация:

Вы можете прочитать о spreadsheets.batchUpdate здесь с C# примером кода внизу страницы здесь .

A JSON представление ресурса запроса можно найти здесь , которое следует тому же структура как ответ, который вы связали здесь .

Я надеюсь, что это полезно для вас!

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...