将工作表副本保存到特定文件夹

时间:2019-06-27 01:31:30

标签: google-apps-script

在提交表单时,我创建了工作表的副本。我不知道如何将复制的工作表保存在特定的文件夹中。创建副本后,我尝试调用该文件夹,然后将复制的工作表保存到该文件夹​​。

//Copying the sheet (triggered by a form submission)

var copyOfSheet = SpreadsheetApp.openById(Id.of.sheet.I.am.copying).copy(name of sheet);

//Grabbing the folder I want to save to

var specificFolder = Drive.App.getFolderById(folderID.in.quotes);

//saving the copy to that folder (This is the part that I think is wrong but I'm not sure how to fix)

specificFolder.addFile(copyOfSheet);

目标是文件将保存在此特定文件夹中,而不是我的通用驱动器中。相反,我收到了一个非函数错误。

1 个答案:

答案 0 :(得分:0)

  • 您要使用Google Apps脚本复制电子表格并将其移动到特定文件夹。

如果我的理解正确,那么这个答案如何?

模式1:

在这种模式下,您的脚本已修改。

修改后的脚本:

//Copying the sheet (triggered by a form submission)
var copyOfSheet = SpreadsheetApp.openById(Id.of.sheet.I.am.copying).copy(name of sheet).getId();
//Grabbing the folder I want to save to
var specificFolder = DriveApp.getFolderById(folderID.in.quotes);

//saving the copy to that folder
// Retrieve the copied file.
var file = DriveApp.getFileById(copyOfSheet);
// Add the file to "specificFolder".
specificFolder.addFile(file);
// Remove the parent folder of copied file.
file.getParents().next().removeFile(file);
  • 在Google云端硬盘中,每个文件可以具有多个父文件夹。因此,在您的情况下,将新的父文件夹添加到复制的文件夹中,并从复制的文件中删除一个父文件夹(在本例中为根文件夹)。

模式2:

在这种模式下,使用makeCopy()将电子表格直接复制到特定文件夹。

脚本:

var specificFolder = DriveApp.getFolderById(folderID.in.quotes);
DriveApp.getFileById(Id.of.sheet.I.am.copying).makeCopy(name of sheet, specificFolder);

注意:

  • 这些模式假定Id.of.sheet.I.am.copyingname of sheetfolderID.in.quotes的值正确。

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。