我正在复制带有附件appsscript项目的基于模板文件的电子表格。您可以在下面看到基本代码。 这非常适合电子表格,但是appsscript项目的名称与模板文件相同。这是一个问题,因为我无法再区分它们了。最后我将有数百个重复项。
是否有办法在复制时设置appsscript项目名称?
提前谢谢!
function copyTemplatev2(filename, sheetID) {
var ss = SpreadsheetApp.openById(sheetID);
//Make a copy of the template file
var copy = DriveApp.getFileById(sheetID).makeCopy()
var documentId = copy.getId();
// Set permissions
copy.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT)
//Rename the copied file
DriveApp.getFileById(documentId).setName(filename);
}
答案 0 :(得分:3)
attached appsscript project
中的a template file with attached appsscript project
是Spreadsheet的容器绑定脚本。如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。
从上述情况来看,我想提出以下流程。
通过以上流程,可以重命名复制的电子表格中容器绑定脚本的GAS项目名称。
当上述解决方法反映到您的脚本中时,它如下所示。
在运行脚本之前,please enable Drive API at Advanced Google services.并请设置变量GASProjectId
,originalGASProjectName
和newGASProjectName
。
function copyTemplatev2(filename, sheetID) {
var GASProjectId = "###"; // Please set the container-bound script ID of the template Spreadsheet.
var originalGASProjectName = "originalName"; // Please set the original project name of container-bound script ID of the template Spreadsheet.
var newGASProjectName = "newName"; // Please set the new GAS project name.
// Rename to new project name.
Drive.Files.update({title: newGASProjectName}, GASProjectId);
var ss = SpreadsheetApp.openById(sheetID);
//Make a copy of the template file
var copy = DriveApp.getFileById(sheetID).makeCopy()
var documentId = copy.getId();
// Set permissions
copy.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT)
//Rename the copied file
DriveApp.getFileById(documentId).setName(filename);
// Rename to original project name.
Drive.Files.update({title: originalGASProjectName}, GASProjectId);
}
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。