Обновите одну ячейку Google Sheets с помощью JavaScript API

Я следовал этому учебнику и смог успешно заставить его работать, чтобы "получить" данные из электронной таблицы, но теперь я хотел бы обновить одну ячейку, используя только API JavaScript. Я пытаюсь использовать этот метод JS:

    gapi.client.sheets.spreadsheets.values.update({
      spreadsheetId: 'something',
      range: 'Sheet1!B2',
    })

Но я не совсем уверен, как передать новое значение ячейки в тело запроса. Я изо всех сил старался следовать этому как руководство, но я не совсем уверен, как это использовать. Я не могу найти никакой документации по JavaScript API "gapi.client.sheets.spreadsheets.values.update". Я получаю 400 ошибок от API со всем, что я пробовал.


person Tim    schedule 02.08.2016    source источник
comment
Хороший ночной отдых пошел мне на пользу; Я смог заставить его работать.   -  person Tim    schedule 02.08.2016


Ответы (3)


Я думаю, что Google обновил свой API, потому что ответ Тима мне не помог. Вот моя структура:

let spreadsheetId = "idOfMySheet";
let range = "nameOfSheet!A1";
let valueInputOption = "RAW";
let myValue = 5;

let values = [[myValue]];
let resource = {
    values,
};
sheets.spreadsheets.values.update({
    spreadsheetId,
    range,
    valueInputOption,
    resource
}, (err, result) => {
    if (err) {
        console.log(err);
    } else {
        console.log('%d cells updated.', result.updatedCells);
    }
});
person Curtis Chong    schedule 03.08.2018

Проверьте эту ссылку.

Для обновления значений листа требуется авторизация с областью действия OAuth, не предназначенной только для чтения, например https://www.googleapis.com/auth/spreadsheets.

а потом

 return gapi.client.sheets.spreadsheets.values.update({
        "spreadsheetId": sid,
        "range": sheetName + "!A2:D",
        "includeValuesInResponse": "true",
        "responseDateTimeRenderOption": "FORMATTED_STRING",
        "responseValueRenderOption": "FORMATTED_VALUE",
        "valueInputOption": "USER_ENTERED",
        "resource": {
          "majorDimension": "ROWS",
          "range": sheetName + "!A2:D",
          "values": [['data1', 'data2', 'data3', 'data4']]
        }
      }).then(function(response) {
       console.log(response);
      
      }, function(err) { console.error("Execute error", err); });

person Rizwan Haque    schedule 01.01.2019
comment
для одной ячейки используется «диапазон: имя_листа+!B1,» - person Rizwan Haque; 01.01.2019

person    schedule
comment
Привет, я получаю код ошибки 403, в доступе отказано с сообщением: Запрос не может быть идентифицирован с клиентским проектом. Пожалуйста, передайте действительный ключ API с запросом. Можете ли вы помочь ?? - person here_to_learn; 25.08.2016
comment
@Tim, это должно быть обновлено, чтобы заменить значения ресурсом, как Кертис Чонг ниже. - person Ryan Shillington; 06.09.2018