我是一位编码知识有限的老师。我正在尝试创建一个Google应用程序脚本,以便我的学生可以从表单上载文档。在表单上,学生将从下拉列表中选择他们的名字,我希望脚本将文件上传到文件夹中,该文件与我先前在驱动器上创建的名字相同。
我找到了此脚本,该脚本允许根据文件夹ID将文件上传到特定文件夹。我该如何修改它们,以根据它们在表单上选择的名称上传到不同的文件夹ID?
function myFunction (e) {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var formResponse = formResponses[formResponses.length-1];
var itemResponses = formResponse.getItemResponses();
// I modified below script.
Utilities.sleep(3000);
var folderId = "1dNoanQMGXvBDIsIRITNHCXnP8srW_Wlt"; // Please set folder ID of the destination folder.
var destfolder = DriveApp.getFolderById(folderId);
for (var i = 0; i < itemResponses.length; i++) {
if (itemResponses[i].getItem().getType() == "FILE_UPLOAD") {
var ids = itemResponses[i].getResponse();
for (var j = 0; j < ids.length; j++) {
var file = DriveApp.getFileById(ids[j]);
destfolder.addFile(file);
file.getParents().next().removeFile(file);
}
}
}
}
答案 0 :(得分:0)
通过向脚本中添加一个switch函数来获得所需的结果。希望对其他人有帮助......
function myFunction (e) {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var formResponse = formResponses[formResponses.length-1];
var itemResponses = formResponse.getItemResponses();
// I modified below script.
Utilities.sleep(3000);
var items = e.response.getItemResponses()
var name = items[0].getResponse();
Logger.log('result is: ' + name);
var parentFolderId = '';
switch (name) {
case 'Red':
parentFolderId = "1JBHIj9BcR-_LDLSwU2nNLo1u5v0sWaAT";
break;
case 'Blue':
parentFolderId = "1NkRQnMxaT2ZFOuLzKk7lc-pZt-OVlPhc";
break;
case 'Green':
parentFolderId = "12EMeWGRwNnf3uE-JkhTmXxznX0OLL60V";
break;
}
Logger.log('Switch result is: ' + parentFolderId);
var folderId = parentFolderId ; // Please set folder ID of the destination folder.
var destfolder = DriveApp.getFolderById(folderId);
for (var i = 0; i < itemResponses.length; i++) {
if (itemResponses[i].getItem().getType() == "FILE_UPLOAD") {
var ids = itemResponses[i].getResponse();
for (var j = 0; j < ids.length; j++) {
var file = DriveApp.getFileById(ids[j]);
destfolder.addFile(file);
file.getParents().next().removeFile(file);
}
}
}
}