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

如何使用AppScript将一个Google Sheet的行列数据添加至另一个Google Sheet

使用Google Apps Script实现跨Sheet数据迁移

前置准备

  1. 获取源表格ID和目标表格ID:打开对应表格,URL中d/与/edit之间的字符串即为ID,例如https://docs.google.com/spreadsheets/d/abc123xyz/edit里的abc123xyz
  2. 确认源工作表、目标工作表的名称(默认是Sheet1,若修改过需对应填写)
  3. 确保你对两个表格均拥有编辑权限

完整实现代码

function copyDataToAnotherSheet() {
  // 1. 配置核心参数
  const sourceSpreadsheetId = "你的源表格ID";
  const sourceSheetName = "Sheet1"; // 源工作表名称
  const targetSpreadsheetId = "你的目标表格ID";
  const targetSheetName = "Sheet1"; // 目标工作表名称
  const sourceRange = "A1:D10"; // 要复制的源数据范围,可按需修改

  try {
    // 2. 读取源表格数据
    const sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
    const sourceSheet = sourceSpreadsheet.getSheetByName(sourceSheetName);
    if (!sourceSheet) throw new Error(`源工作表【${sourceSheetName}】不存在`);
    
    const data = sourceSheet.getRange(sourceRange).getValues();
    if (data.length === 0) {
      console.log("源数据范围为空,无需执行复制");
      return;
    }

    // 3. 追加写入目标表格
    const targetSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetId);
    const targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);
    if (!targetSheet) throw new Error(`目标工作表【${targetSheetName}】不存在`);
    
    // 获取目标表格已有数据的最后一行,从下一行开始写入避免覆盖
    const lastRow = targetSheet.getLastRow();
    targetSheet.getRange(lastRow + 1, 1, data.length, data[0].length).setValues(data);

    console.log(`成功复制 ${data.length} 行数据到目标表格`);
  } catch (error) {
    console.error("数据复制失败:", error.message);
  }
}

代码关键说明

  • 参数替换:开头的常量需替换为你自己的表格ID、工作表名称和数据范围
  • 数据读取:getRange().getValues()会读取指定范围的所有数据,返回二维数组格式
  • 追加逻辑:通过getLastRow()定位目标表格已有数据的末尾,确保新数据不会覆盖原有内容
  • 错误处理:加入了工作表不存在、空数据的判断,控制台会输出具体错误信息便于排查

自定义调整技巧

  • 若需复制整个工作表的全部数据,将sourceRange替换为sourceSheet.getDataRange().getA1Notation()
  • 若需覆盖目标表格原有数据,直接从第1行开始写入:targetSheet.getRange(1, 1, data.length, data[0].length).setValues(data)(注意:此操作会清空目标表原有数据,谨慎使用)
  • 定时自动同步:可通过Google Apps Script的「触发器」功能,设置每天/每周自动运行该函数

常见问题排查

  1. 权限不足:首次运行脚本会弹出授权窗口,需允许脚本访问你的Google表格;若目标表格为共享状态,要确保脚本运行账号(你的Google账号)拥有编辑权限
  2. 格式丢失:getValues()和setValues()仅保留单元格原始值,不保留格式(如颜色、字体);若需复制格式,可将getValues()替换为getDisplayValues(),或使用copyTo()方法
  3. 范围错误:若指定的sourceRange超出源工作表实际数据范围,会读取到空值,建议先确认源数据的实际范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:23:28