2015-05-21 2 views
2

В настоящее время я делаю это:Google Apps Script: Создание нового документа (электронная таблица) из шаблона

//set active spreadsheet to my template 
     var ss = SpreadsheetApp.openById("MYSHEETKEY"); 
     SpreadsheetApp.setActiveSpreadsheet(ss); 


//duplicate active sheet and set a new name 
     SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(rData[0][1]); 

, который создает новый лист в моем шаблоне Spreadsheet, совершенно справедливо. Мне действительно нужно создать совершенно новую копию документа в целом, в идеале, в указанную папку на моем Google Диске. Это возможно?

Спасибо, что и заранее!

ответ

2

Существует функция copy(). Документы находятся: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#copy(String)

var ss = SpreadsheetApp.openById("MYSHEETKEY"); 
var newSS = ss.copy("Copy of " + ss.getName()); 
// Move to original folder 
var originalFolder = DriveApp.getFileById("MYSHEETKEY").getParents().next(); 
var newSSFile = DriveApp.getFileById(newSS.getId()); 
originalFolder.addFile(newSSFile); 
DriveApp.getRootFolder().removeFile(newSSFile); 
+0

Большого спасибо за ваши советы. Отлично работает, хотя мне пришлось удалить getParents() и next() .... можете ли вы объяснить мне цель этих? – James

+0

.getParents() возвращает список папок, в который находится этот файл, и next() получает первую папку. Этот код предполагает, что электронная таблица находится только в одной папке. –

+0

И вам не нужно их удалять. Выполняется код выше. –

Смежные вопросы