Установить папку назначения после создания листа из шаблона - PullRequest
0 голосов
/ 19 июня 2020

Следующий скрипт позволяет создать электронную таблицу из другой таблицы-шаблона, выбрав конкретную c строку.
Но он создает лист на моем личном диске.
Итак, как установить папку назначения по идентификатору?

Скрипт:

function onOpen() {
  SpreadsheetApp.getUi().createMenu('Genera Scheda')
  .addItem('Genera Scheda', 'createSpreadsheet')
  .addToUi()}

function createSpreadsheet() {
  var ss = SpreadsheetApp.getActive();
  // the following line means that the function will search for the spreadsheet name in the active sheet, no matter which one it is
  var sheet = ss.getActiveSheet();
  //the selected row
  var row = sheet.getActiveCell().getRow();
  // column 2 corresponds to "B"
  var name = sheet.getRange(row, 2).getValue();
  var templateSheet1 = ss.getSheetByName('xxx');
  var templateSheet2 = ss.getSheetByName('xxx2');
  var newSpreadsheet = SpreadsheetApp.create(name);
  templateSheet1.copyTo(newSpreadsheet).setName("Scheda");
  templateSheet2.copyTo(newSpreadsheet).setName("Import")
  newSpreadsheet.deleteSheet(newSpreadsheet.getSheetByName("Foglio1"));
}

1 Ответ

1 голос
/ 19 июня 2020

Чтобы изменить папку назначения с помощью DriveApp, используйте методы addFile() и removeFile()

Для этого проще всего указать id целевой папки.

Чтобы переместить файл с диска root из папки в указанную папку на основе вашего кода, вы можете добавить следующие строки:

  var fileId = newSpreadsheet.getId();
  var file = DriveApp.getFileById(fileId);
  var folderId ="XXX";
  var folder = DriveApp.getFolderById(folderId);
  folder.addFile(file);
  DriveApp.getRootFolder().removeFile(file);
...