将文件移动到文件夹 google drive/sheet

Moving files to a folder google drive/sheet

我是 google 的新手,我正在尝试创建传播sheet,然后将其移动到特定文件夹。

在“Synthése Mag”上sheet我有我给文件的所有名称。

已成功创建跨页sheet,但是,当我尝试移动它时,出现以下消息:

Exception: Unexpected error while getting the method or property getFolderById on object DriveApp.

我的代码如下:

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Synthése mag'), true);
  for(var i=2;i<4;i++){
   var mag = spreadsheet.getSheetByName('Synthése mag').getRange(i,2).getValue ();
  
   var ssNew = SpreadsheetApp.create(mag);
Logger.log(ssNew.getUrl());
var newmag = DriveApp.getFilesByName(mag)
DriveApp.getFolderById("Folder ID").addFile(newmag)
  
};

}

有人可以帮忙吗?

解释:

  • 代码中的问题是 getFilesByName does not return a File but a FileIterator. You want to get a file object and therefore you can use getFileById 并传递文件的 ID。

  • 不需要在for循环中激活sheet和重新定义sheet。

  • 获取循环前的所有值,这样就不会反复调用getRange/getValue

解决方案:

function myFunction() {
  const spreadsheet = SpreadsheetApp.getActive();
  const mag = spreadsheet.getSheetByName('Synthése mag');
  const names = mag.getRange('B2:B3').getValues().flat();
  names.forEach(nm=>{
    let ssNew = SpreadsheetApp.create(nm);
    let ssFile = DriveApp.getFileById(ssNew.getId());
    DriveApp.getFolderById("Folder ID").addFile(ssFile)
  })
};