发现Google Sheets真心好用,很多重要数据都是存储在上面。但是不久前发生了一次让人抓狂的事,一个Google账号被举报直接封了!虽然其自带版本控制,也可以简单地设置成自动将内容归档到Google Drive,但是这样鸡蛋放到一个篮子里,如果Google账号被封了,那还是要彻底gg。

所以想到了这种将Google Sheets用邮件附件的形式,定时、自动归档到别的邮箱去,既可以当作版本控制也可以容灾。脚本内容如下
脚本的使用和额外定时触发器这里不做介绍哦(可能后续补充上)

//////////////

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "Send Email", functionName: "backupGoogleSpreadsheetAsExcel"}];
  ss.addMenu("Scripts", menuEntries);
};


function backupGoogleSpreadsheetAsExcel(){
  
  try {
    
    var ss = SpreadsheetApp.getActive();
    
    var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=xlsx";
    
    var params = {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions: true
    };
    
    var blob = UrlFetchApp.fetch(url, params).getBlob();
    
    blob.setName(ss.getName() + ".xlsx");
    
    MailApp.sendEmail("YourEmailAddress", "Google Sheet to Excel", "The XLSX file is attached", {attachments: [blob]});
    
  } catch (f) {
    Logger.log(f.toString());
  }
}


///////////////

需要修改上面YourEmailAddress为你自己的邮箱,sendEmail函数说明参考Google Script https://script.google.com/

AD:G Suite Education全局管理员或者子号出售中!可联系博主

Last modification:January 8th, 2020 at 10:14 pm
如果觉得我的文章对你有用,请随意赞赏