Как эффективно добавить метаданные разработчика в диапазоны строк / столбцов листов? - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь добавить метаданные разработчика в определенные диапазоны строк с помощью 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 секунд. Хотя метаданные все еще изменяются, но я никогда не проверял, было ли это для всех диапазонов.

Есть ли какой-либо другой (эффективный или правильный) способ добиться этого с помощью скрипта приложений? Можно ли как-то пометить диапазоны строк одним вызовом метода вместо итерации по строкам (это невозможно в соответствии с сообщениями об ошибках, которые я получаю, когда пытаюсь это сделать)?

1 Ответ

1 голос
/ 20 января 2020
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...