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

如何每日将Google Sheets工作表数据追加复制到另一工作表?

实现Google Sheets每日自动追加数据到历史表格的App Script方案

步骤1:打开脚本编辑器

打开目标Google Sheets表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑界面。

步骤2:编写核心脚本

将编辑器默认的myFunction()替换为以下代码,注意根据你的实际表名修改sourceSheet和targetSheet的名称:

function appendNewDataToTab2() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName("Tab1"); // 替换为你的源表名称
  const targetSheet = ss.getSheetByName("Tab2"); // 替换为你的目标表名称

  // 获取源表所有数据(包含表头)
  const sourceData = sourceSheet.getDataRange().getValues();
  
  // 源表无数据时直接终止执行
  if (sourceData.length === 0) return;

  const targetLastRow = targetSheet.getLastRow();
  let dataToAppend;

  if (targetLastRow === 0) {
    // 目标表为空,复制源表全部数据(含表头)
    dataToAppend = sourceData;
  } else {
    // 目标表已有数据,跳过源表表头,只追加数据行
    dataToAppend = sourceData.slice(1);
  }

  // 将数据写入目标表
  if (dataToAppend.length > 0) {
    targetSheet.getRange(targetLastRow + 1, 1, dataToAppend.length, dataToAppend[0].length).setValues(dataToAppend);
  }
}

步骤3:设置定时触发器

  1. 在脚本编辑器左侧点击「触发器」图标(时钟样式);
  2. 点击「添加触发器」,按以下参数配置:
    • 选择要运行的函数:appendNewDataToTab2
    • 触发器类型:「基于时间的触发器」
    • 时间驱动类型:「每天」
    • 时间区间:选择「凌晨5点到6点」(确保在=importdata完成数据更新后运行)
    • 时区:选择你所在的时区(如「北京/中国」)

可选优化:保留数据格式

如果需要同步源表的日期、数字等格式,可以在setValues代码块后添加以下内容:

// 复制源表格式到目标表
const sourceRange = sourceSheet.getDataRange();
const targetRange = targetSheet.getRange(targetLastRow + 1, 1, dataToAppend.length, dataToAppend[0].length);
sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);

测试验证

第一次配置完成后,手动点击脚本编辑器的「运行」按钮触发函数执行,按提示完成脚本授权流程,随后检查Tab2是否成功获取Tab1的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:27:23