簡體   English   中英

從 Google 表單創建新文檔並添加到新文件夾

[英]Create new document from Google form and add to a new folder

我在提交表單時觸發了一個 Google 腳本。 它基於模板創建一個新文檔,其中包含從表單中的答案填充的某些變量。

我還在表單提交上創建了一個文件夾。

我遇到的問題是在新創建的文件夾中創建新創建的文檔。 尋找一些幫助合並兩個獨立工作的腳本以實現這一目標。

在表單提交時創建一個文件夾:

function createChannelFolder() {
var ss = SpreadsheetApp.getActive();
var names = ss.getSheetByName("Completed Certifications");
var ChannelName = names.getRange(names.getLastRow(), 2).getValue(); 
var parentFolder=DriveApp.getFolderById("FOLDERID");
return newFolder=parentFolder.createFolder(ChannelName);
  
}

創建表單提交文檔

function autoFillGoogleDocFromForm(e) {
  //e.values is an array of form values
  var Timestamp = e.values[0];
  var Channel = e.values[1];
  var Name = e.values[2];;
  
  var file = DriveApp.getFileById('FILEID'); 
  
  var folder = DriveApp.getFolderById('FOLDERID')
  var copy = file.makeCopy(Channel + ',' + Name, folder); 
  var newId = copy.getId();
  var doc = DocumentApp.openById(newId); 

  var body = doc.getBody(); 
  body.replaceText('{{Timestamp}}', Timestamp); 
  body.replaceText('{{Channel}}', Channel);  
  body.replaceText('{{Name}}', Name);
         
  doc.saveAndClose(); 
}

解釋:

  • 您需要在autoFillGoogleDocFromForm(e)調用createChannelFolder() autoFillGoogleDocFromForm(e)

  • 只需在createChannelFolder()返回文件夾對象:

    return parentFolder.createFolder(ChannelName);


解決方案:

這是autoFillGoogleDocFromForm(e)

function autoFillGoogleDocFromForm(e) {
  //e.values is an array of form values
  var Timestamp = e.values[0];
  var Channel = e.values[1];
  var Name = e.values[2];;
  
  var file = DriveApp.getFileById('FILEID'); 
  
  var folder = createChannelFolder(); // 1st modification point
  var copy = file.makeCopy(Channel + ',' + Name, folder); 
  var newId = copy.getId();
  var doc = DocumentApp.openById(newId); 

  var body = doc.getBody(); 
  body.replaceText('{{Timestamp}}', Timestamp); 
  body.replaceText('{{Channel}}', Channel);  
  body.replaceText('{{Name}}', Name);
         
  doc.saveAndClose(); 
}

這是createChannelFolder()

function createChannelFolder() {
var ss = SpreadsheetApp.getActive();
var names = ss.getSheetByName("Completed Certifications");
var ChannelName = names.getRange(names.getLastRow(), 2).getValue(); 
var parentFolder=DriveApp.getFolderById("FOLDERID");
return parentFolder.createFolder(ChannelName); // 2nd modification point
  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM