App Script + Forms:如何移动上传文件



我有一个表单绑定到一个工作表。这很好。我需要将上传的文件移动到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

}

最新更新