Мне нужно получить лист данных в виде массива, выполнить некоторую обработку, а затем сохранить его на другом листе.
Без попытки какой-либо промежуточной обработки,
var booking = getRowsData(sheet); //should create the array
var range = target.getRange(lastDBRow+1,1,numRows); //obtains the destination range (numRows logged as 3)
тогда
range.setValues([booking]); //tries to save the values but throws an error "Incorrect range height, was 1 but should be 3"
Проверка объекта бронирования с помощью
var response = ui.prompt(booking.length + " " + booking[0].length, ui.ButtonSet.OK);
показывает длину 3 и
booking [0] .length (которое я понял как столбцы) как неопределенное ....
Так почему же длина строки не соответствует?
И должно ли значение столбцов быть неопределенным?
Заранее спасибо!
Полный код:
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('New booking');
var headers = sheet.getRange(1, 1,1,sheet.getLastColumn());
var lastRow = sheet.getLastRow();
var numRows= lastRow-1
var target = ss.getSheetByName('Test'); //temp redirect to test sheet
var lastDBRow =target.getLastRow(); //we want to append the data after this
var booking = getRowsData(sheet); // Get data to copy as array object
= ui.prompt(booking.length + " " + booking[0].length, ui.ButtonSet.OK);
// Returns 3 Undefined
var response = ui.prompt(numRows, ui.ButtonSet.OK);
// Returns 3
var range = target.getRange(lastDBRow+1,1,numRows); // Must match range size
range.setValues([booking]);
}