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

如何将Google Sheet数据复制到另一Google Sheet的最后一行且不覆盖旧数据

跨Google Sheet追加复制数据操作方案

操作前提

你需要对源表和目标表都有编辑权限。

步骤1:打开脚本编辑器

  • 打开源Google Sheet文件,点击顶部菜单栏的「扩展程序」>「Apps Script」,进入脚本编辑页面。

步骤2:填入自定义脚本

  • 删除编辑器里默认的空白代码,粘贴下方代码,按照注释修改4个配置参数:
function copyDataToTargetSheet() {
  // 自定义配置项,替换为你自己的表信息
  const SOURCE_SPREADSHEET_ID = '替换为源Google Sheet的ID';
  const SOURCE_SHEET_NAME = '替换为源工作表名称,例如:Sheet1';
  const TARGET_SPREADSHEET_ID = '替换为目标Google Sheet的ID';
  const TARGET_SHEET_NAME = '替换为目标工作表名称,例如:汇总表';
  // 如果你不需要复制表头,把SKIP_HEADER的值改为true
  const SKIP_HEADER = false;

  // 读取源表数据
  const sourceSheet = SpreadsheetApp.openById(SOURCE_SPREADSHEET_ID).getSheetByName(SOURCE_SHEET_NAME);
  const sourceData = sourceSheet.getDataRange().getValues();
  const finalSourceData = SKIP_HEADER ? sourceData.slice(1) : sourceData;

  // 定位目标表首个空白行
  const targetSheet = SpreadsheetApp.openById(TARGET_SPREADSHEET_ID).getSheetByName(TARGET_SHEET_NAME);
  const firstEmptyRow = targetSheet.getLastRow() + 1;

  // 追加写入数据,不会覆盖原有内容
  targetSheet.getRange(firstEmptyRow, 1, finalSourceData.length, finalSourceData[0].length).setValues(finalSourceData);
}

Google Sheet的ID可以从URL中提取,格式为https://docs.google.com/spreadsheets/d/[表ID]/edit,复制/d/和/edit之间的字符串即可。

步骤3:运行脚本完成复制

  • 点击编辑器顶部的「保存项目」按钮,随便输入一个项目名,比如「跨表同步工具」。
  • 点击运行按钮,首次运行需要按照提示完成授权:如果弹出「Google未验证应用」提示,点击「高级」>「前往[你的项目名](不安全)」即可完成授权,该脚本为你自己创建,不存在安全风险。
  • 运行完成后回到目标表,就能看到源表数据已经追加到原有数据的下方了。

可选配置

  • 只粘贴值不保留公式:把代码最后一行的.setValues(finalSourceData)替换为.setValues(finalSourceData.map(row => row.map(cell => typeof cell === 'object' ? cell.toString() : cell)))即可。
  • 自动同步:点击编辑器左侧菜单栏的「触发」按钮,添加新触发器,可设置为源表更新时自动运行,或者按小时/天/周固定周期自动同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:54:10