Лист # copyTo (Spreadsheet) вызывает ошибку службы - PullRequest
0 голосов
/ 14 февраля 2019

Я просто хочу скопировать шаблонный лист и переименовать его, когда сценарий идентифицирует, что лист отсутствует.

8-я строка (с copyTo) не работает.Я получаю это сообщение об ошибке:

Ошибка службы: электронные таблицы (строка 202, файл "statsContacts")

Подобные вопросы по SO указывают на проблему с Range # copyTo, но этодругой метод.

NB1: в финальной версии «communautes» и «feuillesExistantes» будут генерироваться динамически
NB2: я добавил полифил Array.prototype.includes, чтобы иметь возможность его использовать

function creerFeuillesManquantes(){
  var communautes = ['ESSAI', 'TEST', 'FOO'];
  var feuillesExistantes = ['Catégorie ESSAI', 'Catégorie TEST'];
  for (c in communautes){
    if (!feuillesExistantes.includes(communautes[c])){
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var template = ss.getSheetByName('TEMPLATE');  
      var newSheet = template.copyTo(ss);
      SpreadsheetApp.flush(); // avant de renommer, on s'assure que la copie soit faite
      newSheet.setName('Catégorie '+communautes[c]);
    }
  }
}

1 Ответ

0 голосов
/ 14 февраля 2019

Попробуйте изменить следующее:

function creerFeuillesManquantes(){
  var communautes = ['ESSAI', 'TEST', 'FOO'];
  var feuillesExistantes = ['Catégorie ESSAI', 'Catégorie TEST'];

  // move ss and template up to avoid making network calls every time
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var template = ss.getSheetByName('TEMPLATE');

  for (c in communautes){
    if (!feuillesExistantes.includes(communautes[c])){
      ss.insertSheet('Catégorie '+communautes[c], { template: template });
      SpreadsheetApp.flush(); // avant de renommer, on s'assure que la copie soit faite
    }
  }
}

Я обнаружил, что, когда я переключился на ss.insertSheet(...) вместо template.copyTo(...), я получил гораздо лучшие сообщения об ошибках, например This action would increase the number of cells in the workbook above the limit of 5000000 cells..

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