为每个谷歌表单响应创建新文件夹

时间:2021-06-19 20:42:59

标签: google-apps-script google-forms

我有一个谷歌表单,我希望设置一个脚本来将每个响应传输到自己的文件夹。

trigger 将是一个新的响应。触发后,它会在父文件夹中创建一个子文件夹,其名称基于特定的列答案。

我需要它将响应传输到子文件夹中的 google 文档,并将任何文件上传传输到子文件夹中。

目前,我已经安装了来自该网站的脚本 https://www.labnol.org/file-uploads-folder-google-forms-201226。当在脚本编辑器中时,它运行没有错误。但是,它不会创建新文件夹或将上传内容传输到该文件夹​​。

然而,重命名提交的上传内容以匹配提交者的姓名。

1 个答案:

答案 0 :(得分:0)

您可以通过设置 installable trigger 来监控 submissions to the form 来触发自动化。

一旦它被触发,它就会运行你在创建触发器时指定的函数并传递一个 event object 给它。 此事件对象包含有关提交的数据,包括 responses

之后,根据响应,您可以create a folder 使用指定的名称和move uploaded files

例如,考虑一个有两个问题的工作申请表,“申请人姓名”和“简历文件上传”。您可以使用以下功能为申请人创建一个文件夹并将上传的文件移动到该文件夹​​中:

function processApplication(event) {
  // Parent folder for all application
  const applicationsFolder = DriveApp.getFolderById('ABC123');
  
  // Get respondent's name and uploaded file
  const response = event.response.getItemResponses();
  const applicantName = response[0].getResponse();
  const uploadedFileID = response[1].getResponse();
  const uploadedFile = DriveApp.getFileById(uploadedFileID);

  // Create applicant's folder and move uploaded file to it
  const applicantFolder = applicationsFolder.createFolder(applicantName);
  uploadedFile.moveTo(applicantFolder);
}