Скрипт для копирования 4000 строк + - PullRequest
0 голосов
/ 19 февраля 2020

Я работал со сценарием копирования, который отлично работает с минимальными строками. У меня есть лист ответа формы, который вырастет до 4000 строк, прежде чем я его уберу. Я хочу скопировать лист ответов на другой лист проекта Google, но мой скрипт не работает или вообще не работает. Мне нужен эффективный скрипт для копирования больших объемов данных в несколько различных электронных таблиц. Я уверен, что это торт для профи здесь, я все еще учусь.

Вот мой сценарий:

function CopyRange() {
  var sss = SpreadsheetApp.openById('myspreadsheet-ID'); //replace with source ID
  var ss = sss.getSheetByName('Sheet4'); //replace with source Sheet tab name
  var range = ss.getRange('A:Q'); //assign the range you want to copy
  var data = range.getValues();
  var tss = SpreadsheetApp.openById('Destination-spreadsheet-ID'); //replace with destination ID
  var ts = tss.getSheetByName('data collect'); //replace with destination Sheet tab name
  var app = SpreadsheetApp;
  ts.clear({contentsOnly: true});
  ts.getRange(ts.getLastRow()+1, 1,4000,15).setValues(data); //you will need to define the size of 
  the copied data see getRange()
}

1 Ответ

1 голос
/ 19 февраля 2020
 function copyStuffToSeveralSpreadsheets() {
  var ssA=['ssid1','ssid2','ssid3'.....];
  var ss=SpreadsheetApp.openById('mySSID');
  var sh=ss.getSheetByName('Sheet4');
  var rg=sh.getRange(1,1,sh.getLastRow(),17);
  var vA=rg.getValues();
  ssA.forEach(function(r,i){
    var tss=SpreadsheetApp.openById(ssA[i]); 
    var tsh=tss.getSheetByName('data collect');
    tsh.clearContents();//remove to append
    tsh.getRange(1,1,vA.length,vA[0].length).setValues(vA);//remove to append
    //tsh.getRange(tsh.getLastRow()+1,1,vA.length,vA[0].length).setValues(vA);//enable this to append to the bottom of last dataset
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...