繁体   English   中英

自动备份 Google 表格,无需复制附加到表格的表格

[英]Automatic Google Sheets Back Up without Copying the Forms attached to the Sheets

如何制作将 Google 表格作为备份复制到 Google 云端硬盘中的备份文件夹中的脚本,但不制作附加到表格的 Google 表单的副本?

function backUp() {
    var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss");
    var name = SpreadsheetApp.getActiveSpreadsheet().getName() + " Copy " + formattedDate;
    var destination = DriveApp.getFolderById("1NNhZESRq_0_DVBwzA8fvxSYGMpOa6KC_");
    var file = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId())

    file.makeCopy(name, destination);
}

这个会自动将原始文件复制到备份文件夹中,但它也会复制链接到它的 Google 表单......所以我每天保存后都会有 10 多个副本。

很好的问题。 我的知识有点难,我明白了:)

无法在没有 Form 的情况下复制整个电子表格,因为它们神奇地连接在一起(神奇地 ==> 连接在任何公共 API 可能性下)。

您可以将copy sheet to another spreadsheed功能。

我试过了,它没有创建 Form 的副本,是的!

但是对于这种情况,使用 Script & Drive 笨拙的 API。 结果看起来太hacky了:

function backUp() {
    //Open old spreadsheet
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

    //Prepare new name
    var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss");
    var name = spreadsheet.getName() + " Copy " + formattedDate;

    //Prepare file system objects
    var oldfile = DriveApp.getFileById(spreadsheet.getId());
    var destination = DriveApp.getFolderById("1NNhZESRq_0_DVBwzA8fvxSYGMpOa6KC_");

    //create new spreadsheet
    var newSpreadsheet = SpreadsheetApp.create(name);

    //move to destination folder (yep, it's hacky)
    var newFile = DriveApp.getFileById(newSpreadsheet.getId());
    var parents = newFile.getParents();
    while (parents.hasNext()) {
        var parent = parents.next();
        parent.removeFile(newFile); //remove from default folder
    }
    destination.addFile(newFile);

    //copy all sheets to new spreadsheet
    var sheets = spreadsheet.getSheets();
    sheets.forEach(function(sheet) {
        sheet.copyTo(newSpreadsheet);
    });

    //remove empty sheet (created with new spreadsheet)
    newSpreadsheet.deleteSheet(newSpreadsheet.getSheets()[0]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM