Почему?
Поскольку lastRow меняется после каждого setValue()
. Если lastrow равен 1, после установки title
становится 2> id
устанавливается на 2 + 1> userId
устанавливается на 3 + 1
Решение:
Использование переменная для хранения данных:
var sheet = SpreadsheetApp.getActiveSheet();
var lr = sheet.getLastRow();
sheet.getRange(lr + 1,1).setValue([title]);
sheet.getRange(lr + 1,2).setValue([id]);
sheet.getRange(lr + 1,3).setValue([userId]);
}
Упрощение путем пакетирования:
var sheet = SpreadsheetApp.getActiveSheet();
var lr = sheet.getLastRow();
sheet.getRange(lr+1,1, 1, 3).setValues([[title, id, userId]]);
Упрощение путем пакетирования далее,
//v8
const data = JSON.parse(json);
const sheet = SpreadsheetApp.getActiveSheet();
const lr = sheet.getLastRow();
const output = data.map(obj=>Object.values(obj));
sheet.getRange(lr + 1, 1, output.length, output[0].length).setValues(output);
}