Не удалось сохранить документ - документ слишком большой.Но это не - PullRequest
0 голосов
/ 03 июня 2019

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

ts.getRange(A1Range).setValues(SData); 

Не удалось сохранить документ с идентификатором DESTINATIONURLID: документ слишком большой.(строка 37, файл «Код»)

Я убедился, что исходная электронная таблица не слишком велика - ее длина составляет всего 2000 строк и 65 столбцов.У меня достаточно места на диске Google, чтобы хранить все.

Я попытался запустить скрипт вручную, без синхронизированного триггера, и получил ту же ошибку.Если я просто копирую и вставляю значения, это также работает.

Одна идея, которая у меня возникла, заключается в том, что это может быть связано с тем, что история версий становится очень большой из-за других сценариев, которые автоматически обновляют исходную электронную таблицу.Я решил, что setValues ​​не перенесет историю версий.

Не знаете, что еще здесь попробовать, есть идеи?Спасибо за помощь!Ниже приведен полный код.

// Copy data from Google Sheet A to Google Sheet B
// Credit: https://ctrlq.org/code/20239-copy-google-spreadsheets for most of this code.

function cloneGoogleSheet() {
  //Source breadsheet id: 
  var ssA = 'SOURCEURLID';
  //Destination breadsheet id: 
  var ssB = 'DESTINATIONURLID';

  // source doc
  var sss = SpreadsheetApp.openById(ssA);

  // source sheet
  var ss = sss.getSheetByName('Dashboard Metrics Source');

  // Get full range of data
  var SRange = ss.getDataRange();

  // get A1 notation identifying the range
  var A1Range = SRange.getA1Notation();

  // get the data values in range
  var SData = SRange.getValues();

  // target spreadsheet
  var tss = SpreadsheetApp.openById(ssB);

  // target sheet
  var ts = tss.getSheetByName('DataSauce'); 

  // Clear the Google Sheet before copy
  ts.clear({contentsOnly: true});

  // set the target range to the values of the source data
  ts.getRange(A1Range).setValues(SData);

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