我有一个供用户复制的工作表模板。我想追踪制作了多少份。如果我能真正获得所制作的每个副本的链接,那就太好了。
有什么办法可以通过应用脚本来做到这一点?
答案 0 :(得分:0)
我始终使用下面代码的修改版来制作和跟踪副本。
有一个菜单项,他们可以用来复制电子表格。 该代码会将新电子表格的URL粘贴到您自己的跟踪表中。 虽然,即使您告诉他们,也无法保证他们会使用该方法。用户几乎永远不会按照您想要的方式进行操作。
在工作表中使用公式来计算URL的数量以获取副本的数量。
为使以下代码正常工作,您需要为open
函数触发的On open
安装触发器。用户首次使用脚本时必须授予脚本访问权限。
如果您想完全控制所有工作表,还可以包括所有权变更。
function open() {
SpreadsheetApp
.getUi()
.createMenu('Your-menu-name')
.addItem('Make a copy', 'copy')
.addToUi();
}
function copy() {
var tracker = SpreadsheetApp.openById('tracker-id-here');
var template = DriveApp.getFileById('template-id-here');
var folder = DriveApp.getRootFolder();
//their root folder
//var folder = DriveApp.getFolderById('folder-id');
//use the above line instead if you want to create them in specific folders
var filename = template.getName();
var newFile = template.makeCopy(filename, folder);
var url = newFile.getUrl();
//newFile.setOwner('email-address-here');
//use the line above if you want to set an owner who is not the user
tracker.getSheetByName('your-sheet-name').appendRow([filename, url]);
}