使用Google表格中的单元格值作为输入,使用Google App Script将文件从一个文件夹移动到另一个文件夹

时间:2018-04-19 21:51:16

标签: google-apps-script google-sheets google-drive-api typeerror

我一直在研究该网站,但无法找到我的问题的解决方案。我编写了一个脚本来从工作表中提取一个或多个文件名列表,并使用这些文件名作为输入,将实际文件从一个文件夹移动到另一个文件夹中。我现在的问题是,我不知道如何处理价值" Fileiterator"那是在我的剧本中回来的。因此,我运行脚本时遇到的错误是" TypeError:无法在对象FileIterator中找到函数makeCopy"

当我使用MakeCopy()方法或设置从表格中拉取值的变量时,我不确定是否遗漏了某些内容?

这是我的代码:

// Access Mailing List sheet in gdrive and get filename
var spreadsheet = SpreadsheetApp.openByUrl('spreadsheetURL'); 
var sheet = spreadsheet.getSheets()[0];
var value = sheet.getSheetValues(2,39,1,1);
Logger.log(value);
var folder = DriveApp.getFolderById("folderid1");
Logger.log(folder);
var files = DriveApp.getFilesByName(value);
Logger.log(files);
var destination = DriveApp.getFolderById("folderid2");
Logger.log(destination);
newfile = files.makeCopy("copy of"+files,destination);
Logger.log(newfile);

请指教!

1 个答案:

答案 0 :(得分:0)

出现此问题是因为getFilesByName(name)返回FileIterator对象,但makeCopy是File对象方法。

示例:

这显示了如何使用文件迭代器。

var name = 'File name';
var destination = DriveApp.getFolderById("folderId");
var files = DriveApp.getFilesByName("File name");
while (files.hasNext()) {
  var file = files.next();
  file.makeCopy("copy of " + name, destination);
}
相关问题