【问题标题】:create new folder for each google forms response为每个谷歌表单响应创建新文件夹
【发布时间】:2021-06-22 11:09:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: google-apps-script google-forms


【解决方案1】:

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

一旦触发,它将运行您在创建触发器时指定的函数并将event object 传递给它。 这个事件对象有关于提交的数据,包括responses

之后,根据回复,您可以使用指定的名称create a foldermove 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);
}

【讨论】:

  • 谢谢,它会正确应用于电子表格吗?我已经看到了,但是当我按照他的指示进行操作时,它没有用。 labnol.org/file-uploads-folder-google-forms-201226
  • 我的答案中的代码不需要电子表格。您发布的链接也应该可以正常工作。你是什​​么意思“它没有工作”?你得到了什么错误?
  • 按照他的指示复制粘贴时没有初始化选项。
  • 它还告诉我无法创建没有功能的触发器
  • 嗨!我能够让链接的脚本工作。某种程度上,它会在脚本中运行,但是当我在表单上提交时,它不会填充文件夹等,我该如何根据响应设置文件夹的名称? const subfolderName = response.getId();我只是将列号添加到这一行吗?
猜你喜欢
  • 2019-01-24
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
相关资源
最近更新 更多