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

Google Sheets导出指定范围并追踪数值变更的脚本实现方法

Google Sheets 历史快照自动导出脚本

实现效果

完全匹配需求规则:

  • 所有历史导出记录永久留存,不会被新导出的数据覆盖
  • 每次新导出的快照自动紧跟上一次记录的下一列存放,列头自动标注导出的精确日期时间
  • 后续导出自动向后追加列,不需要手动调整存储位置
  • 每列快照完整留存导出时间点C列的全部数值,可按时间节点回溯任意版本的数据

部署步骤

  • 打开目标Google表格,点击顶部「扩展程序」→「Apps Script」进入脚本编辑页面
  • 删除编辑器里默认的空函数,把下方提供的完整代码粘贴进去
  • 根据自己表格的实际情况修改代码开头的配置项,点击保存按钮,按弹窗提示完成谷歌账号授权即可

完整脚本代码

function exportDataSnapshot() {
  // ---------- 配置项,按需修改 ----------
  const sourceSheetName = "源工作表"; // 替换为你存放源数据的工作表名称
  const targetSheetName = "快照存储表"; // 替换为你存放历史快照的工作表名称
  const dataStartRow = 2; // 源表数据起始行,第一行是表头就填2,无表头填1
  // ------------------------------------

  const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = activeSpreadsheet.getSheetByName(sourceSheetName);
  const targetSheet = activeSpreadsheet.getSheetByName(targetSheetName);

  // 读取源表A:C列全量有效数据
  const sourceLastRow = sourceSheet.getLastRow();
  const sourceData = sourceSheet.getRange(`A${dataStartRow}:C${sourceLastRow}`).getValues();

  // 定位目标表本次写入的起始列
  const targetLastCol = targetSheet.getLastColumn();
  const writeStartCol = targetLastCol === 0 ? 1 : targetLastCol + 1;

  // 生成带本地时区的导出时间作为列头
  const exportTime = Utilities.formatDate(
    new Date(),
    Session.getScriptTimeZone(),
    "yyyy-MM-dd HH:mm:ss"
  );

  // 组装待写入数据:首行为时间戳,后续行对应源表C列数值
  const writeData = [[exportTime], ...sourceData.map(row => [row[2]])];

  // 批量写入减少API调用,提升运行速度
  targetSheet.getRange(1, writeStartCol, writeData.length, 1).setValues(writeData);

  // 导出完成弹窗提示,不需要可以注释掉下面这行
  SpreadsheetApp.getUi().alert(`快照导出成功,版本时间:${exportTime}`);
}

使用注意事项

  • 首次部署前,请先在快照存储表的A列填入和源表顺序一致的固定标识字段(比如项目ID、名称等源表A列的固定内容),方便后续对齐各版本的数值
  • 如果需要一键触发,可以在表格页面插入形状作为按钮,右键将形状指定到exportDataSnapshot宏,后续点击按钮即可完成导出
  • 脚本采用批量写入逻辑,就算数据量上千行也能秒级完成,不会出现卡顿
  • 如果需要设置定时自动导出,可以在Apps Script编辑器左侧的触发器页面,给这个函数设置定时触发规则,比如每天/每周固定时间自动生成快照,不需要手动操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:48:30