Сроки выполнения скрипта таблицы 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();