Как сказал @Cooper, использование диапазонов с нотацией A1 может быть сложным, так как он выберет пустые строки в нижней части диапазона.
Чтобы обойти это, вы можете: - Использовать getLastRow
- используйте getDataRange
, а затем фильтруйте ваши данные
«Перевод» getRange('D4:D')
с использованием getLastRow
, вам придется использовать что-то вроде getRange(4,4,sheet.getLastRow()-3,1)
.
Однако, поскольку большинство ваших данных поступают из строки 3 или 4, вы можете вместо этого сделать что-то вроде:
var data = StockSheet.getDataRange();
var formattedData = data.getValues()
.splice(3) //Removes the first 3 rows of data (the headers)
.map(rowToData); //Returns an array of objects with all the columns as properties.
function rowToData(row) {
return {
"item": row[1],
"stock": row[2],
"hagerstown": row[3],
"chambersburg": row[4],
"waynesboro": row[5],
};
}
Код на основе: этот диапазон .