Я пытаюсь создать функцию сброса электронной таблицы, чтобы очистить электронную таблицу.
Теперь я использую циклы для определения значений для каждого столбца. 'Dikte'
Необходимо установить 6
. И первый столбец должен быть ложным. clearContent
очищает все. Есть ли более приятный способ?
var values = [];
for (i = 0; i < 12; i++) {
values.push([false,'','','','','6','0'])
}
var oldoak_data = SS.getRangeByName('oldoak_data').setValues(values);
Решение 1:
Вы можете избавиться от петли for
, используя карту. Это даст вам некоторое повышение производительности, поскольку map
работает быстрее, чем обычные циклы.
Как правило, поскольку этот подход перезаписывает предыдущие значения, рекомендуется очистить содержимое перед установкой новых значений.
Решение 2:
Sheet1
. Очистите только нужный диапазон 'A2:E13'
и установите значения двух других столбцов на 6
и 0
соответственно. Не уверен, что этот подход быстрее, но он может быть более эффективным.Решение 1:
function resetFields() {
const SS = SpreadsheetApp.getActive();
const rng = SS.getRangeByName('oldoak_data');
const values = rng.getValues().map(r=>[false,'','','','','6','0'])
rng.clearContent();
rng.setValues(values);
}
Решение 2:
function resetFields() {
const SS = SpreadsheetApp.getActive();
const SH = SS.getSheetByName('Sheet1');
const rngClear = SH.getRange('A2:E13');
rngClear.clearContent();
SH.getRange('F2:F13').setValue(6);
SH.getRange('G2:G13').setValue(0);
}
Пример листа для решения 2:
Решение 1 для меня лучший подход. Решение 2, когда я добавляю новую строку перед столбцами заголовков. Относительная ссылка, например (A1:A10), изменена. Вот почему я использую именованные диапазоны.