我有一个表单绑定到一个工作表。这很好。我需要将上传的文件移动到newFolder中,并将它们从临时保存文件夹中删除。
我把它分成两个函数。他们各自独立工作,但我不能让他们一起工作。我想我知道的还不够多。
所以我需要一些帮助来整理这个
感谢
//this part works great
function autoFillForm(e) {
var timestamp = e.values[0];
var firstName = e.values[1];
var lastName = e.values[2];
var title = e.values[3];
//create new folder
var parentFolder = DriveApp.getFolderById('My Parent Folder ID');
var newFolder = parentFolder.createFolder(lastName + ' - ' + firstName);
//Get template
var file = DriveApp.getFileById('My Template ID');
//Copy template, name it, save to new folder
var copy = file.makeCopy(lastName + ',' + firstName + ' - ' + 'Template Name', newFolder);
//Open copied file
var doc = DocumentApp.openById(copy.getId());
//Get Template body
var body = doc.getBody();
//Replace text in template
body.replaceText('{{fName}}', firstName);
body.replaceText('{{lName}}', lastName);
body.replaceText('{{title}}', title);
//Save and close
doc.saveAndClose();
}
我能够得到这个工作,它移动的文件,但只有在一个独立的脚本。我已经尝试了几个小时,让它与主要脚本一起工作,我很茫然。
function movingFiles (e){
//get file names from source folder
var files = DriveApp.getFolderById(ID for Source Folder).getFiles();
while(files.hasNext())
{
var file = files.next();
}
//get file ID
var fileId = file.getId();
//move file, clean source folder
DriveApp.getFolderById(newFolder).addFile(file);
file
.getParents()
.next()
.removeFile(file);
}
: DriveApp.getFolderById (newFolder) .addFile(文件);getfolderbyid (newFolder.getId()).addFile(file);
: (newFolder)(newFolder.getId())
我觉得有点愚蠢,因为这是一个简单的答案,最后。我可以在一个函数中做所有的事情。不需要单独的全局变量函数。//this part works great
function autoFillForm(e) {
var timestamp = e.values[0];
var firstName = e.values[1];
var lastName = e.values[2];
var title = e.values[3];
//create new folder
var parentFolder = DriveApp.getFolderById('My Parent Folder ID');
var newFolder = parentFolder.createFolder(lastName + ' - ' + firstName);
//Get template
var file = DriveApp.getFileById('My Template ID');
//Copy template, name it, save to new folder
var copy = file.makeCopy(lastName + ',' + firstName + ' - ' + 'Template Name',
newFolder);
//Open copied file
var doc = DocumentApp.openById(copy.getId());
//Get Template body
var body = doc.getBody();
//Replace text in template
body.replaceText('{{fName}}', firstName);
body.replaceText('{{lName}}', lastName);
body.replaceText('{{title}}', title);
//Save and close
doc.saveAndClose();
//get file names from source folder
var files = DriveApp.getFolderById(ID for Source Folder).getFiles();
while(files.hasNext())
{
var file = files.next();
}
//get file ID
var fileId = file.getId();
//error here
//move file, clean source folder
DriveApp.getFolderById(newFolder).addFile(file);
file
.getParents()
.next()
.removeFile(file);
//this is where I was making a mistake
//this: DriveApp.getFolderById(newFolder).addFile(file);
//to this: DriveApp.getFolderById(newFolder.getId()).addFile(file);
//I was failing to understand I needed to define the function to the var again
}