Я пытаюсь добавить метаданные разработчика в определенные диапазоны строк с помощью Google Apps Script. Пока что я собрал воедино этот фрагмент кода:
function updateMetadata() {
var sheet = SpreadsheetApp.openById("<sheet id>");
var dataRange = sheet.getDataRange();
var productNameRanges = dataRange.getMergedRanges();
productNameRanges.forEach(function(productRange){
var productName = productRange.getCell(1, 1).getValue();
for (var j=productRange.getRow(); j<=productRange.getLastRow(); j++){
var range = sheet.getRange(j+":"+j);
// Remove old metadata
range.getDeveloperMetadata().forEach(function(md){
md.remove();
});
// Add new metadata
range.addDeveloperMetadata(
"product_name",
productName,
SpreadsheetApp.DeveloperMetadataVisibility.PROJECT
);
}
});
}
Предполагалось, что цель этого состоит в том, чтобы пометить диапазоны объединенных ячеек значением метаданных, чтобы сделать возможным получение этих диапазонов по значению объединенных ячеек , Пока что функция никогда не завершается, последняя отображаемая продолжительность выполнения составляет около 8 секунд. Хотя метаданные все еще изменяются, но я никогда не проверял, было ли это для всех диапазонов.
Есть ли какой-либо другой (эффективный или правильный) способ добиться этого с помощью скрипта приложений? Можно ли как-то пометить диапазоны строк одним вызовом метода вместо итерации по строкам (это невозможно в соответствии с сообщениями об ошибках, которые я получаю, когда пытаюсь это сделать)?