如何使用time trigger实现每日自动复制spreadsheet并执行指定操作
Google Sheets 每日自动备份锁定清理实现方案
核心实现逻辑
基于Google Apps Script编写自动化脚本,搭配时间触发器实现每日凌晨自动执行,完整脚本如下:
function dailyBackupAndClean() { // 请替换为你实际的主工作表名称 const MAIN_SHEET_NAME = "主工作表"; const ss = SpreadsheetApp.getActiveSpreadsheet(); const mainSheet = ss.getSheetByName(MAIN_SHEET_NAME); // 1. 生成带当前日期的副本 const today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd"); const backupSs = ss.makeCopy(today); // 2. 锁定备份文件所有工作表,仅所有者可编辑 const backupSheets = backupSs.getSheets(); backupSheets.forEach(sheet => { const protection = sheet.protect(); protection.removeEditors(protection.getEditors()); if (protection.canDomainEdit()) { protection.setDomainEdit(false); } }); // 3. 清空主工作表除第一行外的所有内容,如需调整保留区域可修改下方范围参数 if (mainSheet.getLastRow() > 1) { const clearRange = mainSheet.getRange(2, 1, mainSheet.getLastRow() - 1, mainSheet.getLastColumn()); clearRange.clearContent(); } }
配置步骤
- 打开你要设置的Google Sheets文件,点击顶部「扩展程序」->「Apps Script」进入脚本编辑器
- 将上述代码粘贴到编辑区,修改
MAIN_SHEET_NAME的值为你实际的主工作表名称,点击保存按钮给项目命名 - 点击左侧菜单栏的时钟图标进入触发器页面,点击右下角「添加触发器」
- 选择运行函数:
dailyBackupAndClean - 事件源选择「时间驱动」
- 触发器类型选择「日计时器」
- 时间范围选择你需要的凌晨时段(比如午夜1点到2点)
- 保存后按照页面提示完成权限授权即可
- 选择运行函数:
注意事项
- 首次配置完成后建议手动运行一次
dailyBackupAndClean函数,确认权限授权成功、功能运行符合预期 - 如果你需要保留的不是第一行,而是其他固定区域,调整代码中
getRange的参数即可修改清空范围 - 备份文件默认生成在你的Google Drive根目录,可在
makeCopy方法中传入文件夹参数指定存放路径
内容的提问来源于stack exchange,提问作者Maurice
相关产品推荐
相关产品推荐

