Google apps script 从Google表单创建新文档并添加到新文件夹

Google apps script 从Google表单创建新文档并添加到新文件夹,google-apps-script,google-sheets,google-docs,google-forms,google-docs-api,Google Apps Script,Google Sheets,Google Docs,Google Forms,Google Docs Api,我在提交表单时触发了一个谷歌脚本。它根据模板创建一个新的文档,模板中的某些变量由表单中的答案填充 我还有一个在表单提交上创建的文件夹 我遇到的麻烦是在新创建的文件夹中创建新创建的文档。寻找一些帮助合并两个脚本,他们自己的工作来实现这一点 在表单提交时创建文件夹: function createChannelFolder() { var ss = SpreadsheetApp.getActive(); var names = ss.getSheetByName("Completed Ce

我在提交表单时触发了一个谷歌脚本。它根据模板创建一个新的文档,模板中的某些变量由表单中的答案填充

我还有一个在表单提交上创建的文件夹

我遇到的麻烦是在新创建的文件夹中创建新创建的文档。寻找一些帮助合并两个脚本,他们自己的工作来实现这一点

在表单提交时创建文件夹:

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(); 
}
说明:
  • 您需要在内部调用
    createChannelFolder()
    自动填充GoogleDocFromForm(e)

  • 只需返回
    createChannelFolder()中的文件夹对象即可

    返回parentFolder.createFolder(ChannelName)


解决方案: 以下是自动填充GoogleDocFromForm(e)

下面是
createChannelFolder()


工作完美,唯一突出的问题是创建了两个文件夹,其中一个包含文档,有什么想法吗?
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(); 
}
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
  
}