Скрипт импорта приложений

#google-apps-script #google-sheets

Вопрос:

Я хочу сделать свой собственный «ИМПОРТ» из сценария приложений, но я получаю ошибку, в которой говорится «Исключение: Недопустимый аргумент: URL» в строке 4.

Я пытался использовать «openById», но он тоже не работает.

Если это не работает, как я могу сделать свой собственный «ИМПОРТ»?

Это и есть код:

 function copypaste(sourcelink,sourcesheet,sourcerange,destilink,destisheet,destirange) {

//Source link
var ssraw = SpreadsheetApp.openByUrl(sourcelink);
var sheetraw = ssraw.getSheetByName(sourcesheet);
var range = sheetraw.getRange(sourcerange);
var data = range.getValues();

//Destination
var ss = SpreadsheetApp.openByUrl(destilink);
var sheet = ss.getSheetByName(destisheet);

// transfer to desitnation range
sheet.getRange(destirange).clearContent();
sheet.getRange(destirange).setValues(data);
}


function run(){
copypaste("https://docs.google.com/spreadsheets/d/1JCMl8Qna3k8_cAa5kqNN924Pw3UVTa1_U1XeanGFhmU/edit#gid=0",
"Sheet1",
"A1",
"https://docs.google.com/spreadsheets/d/10Zw7OSgBnIFDhjh16mRY8zDi6QgDU0ecJjyOYQP-xtU/edit#gid=0",
"Sheet1",
"A2")
}
 

Ответ №1:

Это работает на меня. Я использовал идентификаторы и openById():

 function copypaste(sourcelink, sourcesheet, sourcerange, destilink, destisheet, destirange) {

  //Source link
  var ssraw = SpreadsheetApp.openById(sourcelink);
  var sheetraw = ssraw.getSheetByName(sourcesheet);
  var range = sheetraw.getRange(sourcerange);
  var data = range.getValues();

  //Destination
  var ss = SpreadsheetApp.openById(destilink);
  var sheet = ss.getSheetByName(destisheet);

  // transfer to desitnation range
  sheet.getRange(destirange).clearContent();
  sheet.getRange(destirange).setValues(data);
  const end = 'is near';
}


function testtest() {
  copypaste("source id","Sheet1","A1:J21","destination id",
    "Sheet1","A1:J21")
}