首页 > 解决方案 > 为每个谷歌表单响应创建新文件夹

问题描述

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

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

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

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

但是,它会重命名提交的上传文件以匹配提交者的姓名。

标签: google-apps-scriptgoogle-forms

解决方案


您可以通过设置一个可安装的触发器来监控对表单的提交来触发自动化。

一旦触发,它将运行您在创建触发器时指定的函数并将事件对象传递给它。此事件对象包含有关提交的数据,包括响应

之后,根据响应,您可以创建一个具有指定名称的文件夹并将上传的文件移动到该文件夹​​。

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

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);
}

推荐阅读