Вы хотите добавить данные CSV, а не заменять существующие данные.
Удалить эти строки
Ваш код содержит следующие строки, которые необходимо удалить:
sheet.clearContents().clearFormats();
В этой строке удаляются все существующие данные с листа.
sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
Определяет диапазон с ячейкой «A1» в верхнем левом углу, а количество строк и столбцов определяется данными CSV. Используя ячейку A1, данные будут располагаться в верхней части листа.
Заменить на:
var LR = sheet.getLastRow();
sheet.getRange(LR+1, 1, csvData.length, csvData[0].length).setValues(csvData);
LR определяется в последней строке на листе.
Тогда первая строка диапазона - «LR + 1» - строка, следующая сразу за последней строкой.
Таким образом, метод setValues
будетдобавьте данные на лист, начиная с первой строки, следующей за «Последней строкой».
Редактировать: Сортировать по отметке времени
Очевидно, вам нужно получитьновая «последняя строка», и я также получаю последний столбец (но это можно использовать повторно из более раннего значения). Это позволяет установить диапазон getRange()
- и затем отсортировать (sort
) (обратите внимание, что диапазон начинается со строки 2, чтобы избежать заголовков).
FWIW, 1) sort
можно объединить в цепочкудо getRange
(вырезать две строки). Я не делал этого, но только для того, чтобы я мог продемонстрировать / доказать размеры диапазона. 2) есть команда сортировки для листов, а также для диапазонов - лучше не смешивать их; -)
var sortLR = sheet.getLastRow();
var sortLC = sheet.getLastColumn();
var sortrange = sheet.getRange(2,1,sortLR-1,sortLC);
// Logger.log("DEBUG: the sort range = "+sortrange.getA1Notation());
sortrange.sort([{column: 1, ascending: false}]);
Ссылка
Диапазон sort