发现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/