google-apps-script - 为每个谷歌表单响应创建新文件夹
问题描述
我有一个谷歌表单,我希望设置一个脚本来将每个响应传输到它自己的文件夹。
触发器将是一个新的响应。触发时,它将在父文件夹中创建一个子文件夹,其名称基于特定列的答案。
我需要它将响应传输到子文件夹中的谷歌文档,并将任何文件上传传输到子文件夹中。
目前,我已经安装了这个网站上的脚本https://www.labnol.org/file-uploads-folder-google-forms-201226。在脚本编辑器中运行时没有错误。但是,它不会创建新文件夹或将上传文件传输到该文件夹。
但是,它会重命名提交的上传文件以匹配提交者的姓名。
解决方案
您可以通过设置一个可安装的触发器来监控对表单的提交来触发自动化。
一旦触发,它将运行您在创建触发器时指定的函数并将事件对象传递给它。此事件对象包含有关提交的数据,包括响应。
之后,根据响应,您可以创建一个具有指定名称的文件夹并将上传的文件移动到该文件夹。
例如,考虑一个有两个问题的工作申请表,“申请人姓名”和“简历文件上传”。您可以使用以下功能为申请人创建一个文件夹并将上传的文件移动到该文件夹:
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);
}
推荐阅读
- unreal-engine4 - 按照另一个样条点的路径创建一个新的样条网格作为输入
- java - 使用 StringTokenizer 将 .txt 文件转换为二维数组
- azure - 如何在 Azure API 管理网关中获取用户信息?
- c++ - 在 C++ 中,数学数据类型的重载运算符应该返回新的相同类型的对象还是改变现有的对象?
- python - 如何将一个函数的输出用于另一个函数?
- mysql - 如何在当前日历周内获取 sql 结果
- python-3.x - 当我关注另一个小部件时,如何获得关注的小部件?(为了强制焦点 avec a
绑定) - wildfly - WildFly 10.1.0:服务器运行时出现 ActiveMQConnectionTimedOutException
- azure - 将子域委托给 Azure
- azure - Microsoft Graph API 获取所有电话号码