You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助:每月将Google Sheets指定工作表复制至Drive并清空数据

嘿,刚好能帮你搞定这个每月自动备份+清空的需求!咱们用Google Apps Script就能实现这个定时任务,步骤超清晰:

实现方案

1. 编写自动备份脚本

打开你的Google Sheets,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,把下面的代码粘贴进去:

function backupAndClearSheet() {
  // 获取当前表格
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const targetSheet = ss.getSheetByName('collected orders');
  
  // 先检查目标工作表是否存在
  if (!targetSheet) {
    console.log('找不到名为"collected orders"的工作表,请确认名称是否正确');
    return;
  }

  // 生成带年月的备份文件名
  const date = new Date();
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以加1并补0
  const backupFileName = `订单收集备份_${year}年${month}月`;

  // 把工作表复制到新的表格,并保存到Drive根目录
  const backupSpreadsheet = SpreadsheetApp.create(backupFileName);
  targetSheet.copyTo(backupSpreadsheet);
  
  // 如果你想把备份存到指定文件夹,替换上面两行成下面的代码(记得替换FOLDER_ID)
  // const targetFolder = DriveApp.getFolderById('你的文件夹ID');
  // const backupSpreadsheet = SpreadsheetApp.create(backupFileName);
  // targetSheet.copyTo(backupSpreadsheet);
  // targetFolder.createFile(backupSpreadsheet.getBlob());
  // DriveApp.getFileById(backupSpreadsheet.getId()).setTrashed(true); // 删除默认位置的临时文件

  // 清空原工作表数据(保留第1行的表头)
  const lastRow = targetSheet.getLastRow();
  if (lastRow > 1) {
    targetSheet.deleteRows(2, lastRow - 1);
  }

  console.log(`已完成备份:${backupFileName},原工作表数据已清空`);
}

2. 设置每月末的定时触发器

代码写完后,点击左侧的「触发器」图标(时钟样式),然后点击「添加触发器」:

  • 选择运行的函数:backupAndClearSheet
  • 部署类型选「时间驱动」
  • 时间基于选「月计时器」
  • 月份中的日期选「最后一天」
  • 时间选你希望执行的时间段(比如「晚上9点到10点」)
  • 点击「保存」,按照提示授权脚本访问你的Sheets和Drive权限就行。

小提示

  • 第一次授权时,Google会提示“此应用未验证”,别担心,点击「高级」→「转到XX脚本(不安全)」继续授权就好,因为脚本是你自己写的,绝对安全。
  • 如果你的表头不在第1行,记得修改清空数据的代码,把deleteRows(2, lastRow - 1)里的起始行改成你表头的下一行。
  • 要找文件夹ID的话,打开目标文件夹,URL里folders/后面的一串字符就是ID。

内容的提问来源于stack exchange,提问作者Luke Suter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:12:40