#javascript #google-apps-script #google-sheets
#javascript #google-apps-script #google-sheets
Вопрос:
У меня есть скрипт, в котором пользователь вводит некоторую информацию и отправляет. При отправке я запускаю .appendRow()
, который выполняется успешно. С помощью имеющихся у меня данных я пытаюсь установить цвета фона для нескольких ячеек на основе значения другого.
Пример. Если J2, то setBackgroundColor("yellow")
для J2: L2
Я создал скрипт, прикрепленный к электронной таблице, где я пытаюсь создать триггер для этого. Созданный мной триггер работает, когда я вручную редактирую электронную таблицу. Однако onEdit()
ни onChange()
один из них не работал, когда я appendRow()
. appendRow()
Не запускает событие в электронной таблице?
Вот мой сценарий для триггера / события.
function onEdit(e){
colorBasedOnStatus(e.range.getRow());
}
function colorBasedOnStatus(rowIndex) {
Logger.log(rowIndex);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Log");
var range = sheet.getRange("J" rowIndex ":L" rowIndex);
var values = range.getValues();
Logger.log(values);
var status = values[0][0];
Logger.log("status: " status);
range.setFontColor("white");
if(status === "Denied"){
range.setBackground("#FF6666");
} else if(status == "Approved") {
range.setBackground("#66C285");
} else {
range.setBackground("#FFE271");
}
SpreadsheetApp.flush();
}
Комментарии:
1. Как пользователи отправляют свои входные данные?
2. прямо сейчас это скрипт, который позже станет гаджетом на сайте Google
3. Тогда вам не нужен никакой триггер … не могли бы вы показать код, который вы используете, пожалуйста?
4. Я отредактировал сообщение, чтобы включить код
5. на самом деле это была функция, которая добавляет интересующую меня строку… Я думаю, вы могли бы просто позволить этому скрипту вызывать вашу функцию «colorBasedOnStatus (RowIndex)», не требуя никакого триггера.
Ответ №1:
Я думаю, вы могли бы просто позволить этому скрипту вызывать вашу colorBasedOnStatus(rowIndex)
функцию без какого-либо триггера и напрямую интегрироваться в функцию, которую вы используете для добавления новой строки.
Таким образом, вам не нужна настройка триггера, и ваш код также упрощается.