- Вы хотите добавить значение в новую строку, используя API Sheets с Node.js.
Если мое понимание верно, как насчет этой модификации?
Модификацияточка:
- Я думаю, что использование метода values.append подходит для вашей ситуации.
Модифицированный скрипт:
Пожалуйста, измените следующим образом.
From:
sheets.spreadsheets.values.batchUpdate({
spreadsheetId: 'spreadsheetid',
requestBody: {
data: [
{
range: dateCell,
values: [
[date]
]
},
{
range: resultCell,
values: [
[result]
]
},
{
range: commentCell,
values: [
[comment]
]
}
],
valueInputOption: "RAW",
includeValuesInResponse: true
}
}, (err, response) => {
To:
При использовании этого, пожалуйста, установите диапазон и значения.С помощью этого сценария значения добавляются в новую строку.
sheets.spreadsheets.values.append(
{
spreadsheetId: 'spreadsheetid',
range: "Sheet1!A:A", // This is a sample range.
valueInputOption: "RAW",
resource: { values: [["date", "result", "comment"]] } // This is a sample value.
}, (err, response) => {
Примечание:
- Исходя из вашего вопроса, я могу подтвердить, что вы уже смогли использовать Sheets API.
- В этом случае значение может быть установлено как
{ values: [["date", "result", "comment"]] }
.
Ссылки:
Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я извиняюсь.
Редактировать:
- Вы хотите добавить значениев те же ячейки без перезаписи.Например, ячейки
A1:B1
имеют sample1
и sample2
.Когда значения sample3
и sample4
добавляются к A1
и B1
, соответственно, ячейки становятся sample1sample3
и sample2sample4
.
Из вашего комментария ответа ямог бы понять, как это.К сожалению, в данной ситуации на текущем этапе это невозможно сделать одним вызовом API.Поэтому требуется выполнить следующий поток.
- Получить значения из
A1:B1
. - Установить значения в
A1:B1
путем обновления значений.
Для этого, например, как насчет использования метода spreadsheets.values.get
и spreadsheets.values.update
?
Модифицированный скрипт:
От:
sheets.spreadsheets.values.batchUpdate({
spreadsheetId: 'spreadsheetid',
requestBody: {
data: [
{
range: dateCell,
values: [
[date]
]
},
{
range: resultCell,
values: [
[result]
]
},
{
range: commentCell,
values: [
[comment]
]
}
],
valueInputOption: "RAW",
includeValuesInResponse: true
}
}, (err, response) => {
To:
В этом случае ячейки Sheet1!A1:B1
обновляются путем добавления дополнительных значений к существующим значениям.Например, когда ячейки Sheet1!A1:B1
имеют sample1
и sample2
, при запуске этого сценария ячейки обновляются до sample1sample3
и sample2sample4
.
const spreadsheetId = "###";
const range = "Sheet1!A1:B1";
const additionalValue = [["sample3", "sample4"]];
sheets.spreadsheets.values.get(
{
spreadsheetId: spreadsheetId,
range: range
},
(err1, result1) => {
if (err1) {
console.log(err1.errors);
return;
}
const newValue = result1.data.values.map((row, i) =>
row.map((col, j) => col + additionalValue[i][j])
);
sheets.spreadsheets.values.update(
{
spreadsheetId: spreadsheetId,
range: range,
valueInputOption: "USER_ENTERED",
resource: { values: newValue }
},
(err2, result2) => {
if (err2) {
console.log(err2.errors);
return;
}
console.log(result2.data);
}
);
}
);
Ссылки: