跟踪从Google电子表格制作的副本数

时间:2018-12-13 21:14:59

标签: google-apps-script google-sheets

我有一个供用户复制的工作表模板。我想追踪制作了多少份。如果我能真正获得所制作的每个副本的链接,那就太好了。

有什么办法可以通过应用脚本来做到这一点?

1 个答案:

答案 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]);
}