Я пытаюсь создать скрипт GApps, который преобразует DataValidation
в 2D String Array, чтобы его можно было кэшировать с помощью CacheService
, а затем преобразовать в DataValidation
, чтобы сэкономить время и повысить эффективность. До сих пор я нашел способ получить, как я полагаю, всю необходимую информацию для воссоздания DataValidation
, но я не уверен, как сделать воссоздание DataValidation
, избегая при этом использования getDataValidations
из-за временных ограничений системы сценариев GApps. Приведенный ниже скрипт собирает CriteriaValues
и CriteriaType
и отправляет их в значения в массиве строк перед кэшированием их в виде строки JSON под значением data_eval_arr_cached
.
var rules = template_data.getDataValidations()[0]; //takes 10 seconds
if (rules != null){
var rules_array = [ ];
var x = 0;
for each (var data_eval in rules){
if (data_eval != null){
rules_array[x] = [ ];
var y = 0;
for each(var arg in data_eval.getCriteriaValues()){
if (arg == "Range"){
rules_array[x][y] = arg.getA1Notation();
} else {
rules_array[x][y] = arg;
}
y++;
}
rules_array[x][y] = data_eval.getCriteriaType().toString();
} else {
rules_array[x] = null;
}
x++;
}
}
data_eval_arr = JSON.parse(JSON.stringify(rules_array));
cache.put("data_eval_arr_cached", JSON.stringify(rules_array));
}