Сроки выполнения скрипта таблицы Google

Я написал скрипт GS, чтобы очистить данные от всех ячеек в листах. В электронной таблице много листов (около 200), и я получаю ошибку выполнения лимита времени. Может быть, у кого-то есть идеи, как решить эту проблему. Вот пример моего кода.

function cleanAllOld() {

  var sheetsName = new Array();
  var destination = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
  var sheets = destination.getSheets();

  for (var k = 0; k < sheets.length; k++) {

    sheetsName.push([sheets[k].getName()]);

    for (var p = 0; p < sheetsName.length; p++) {
      var sheet = destination.getSheetByName(sheetsName[p]);
      if (sheet === null) {} else {
        sheet.getDataRange().clearContent();
      }
    }
  }
}

2 ответа

Решение

Я не понимаю всю часть вашего кода, но думаю, что он слишком сложен ни для чего. Вот пример, который работает:

function AllDelete() {

  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/link");
  var sheets = ss.getSheets();
  var i = 0;

  for(i in sheets){

    sheets[i].clearContents();

  }

}

Редактировать: Макс быстро и правильно, метод getDataRange() использует много ресурсов

Я думаю, что проблема заключается в получении диапазона данных.

Попробуйте заменить это

sheet.getDataRange().clearContent();

этим:

sheet.clearContents();

Другие вопросы по тегам