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

如何用Google Script跨电子表格复制多个指定标签页纯值

Google Apps Script 跨表多工作表纯值复制方案

实现逻辑

  • 预先配置需要复制的指定工作表名称列表,无需全表遍历匹配索引,减少无效计算
  • 逐个处理配置列表内的工作表:先校验源表是否存在对应名称的工作表,避免脚本异常中断
  • 目标表侧自动判断同名工作表是否存在:不存在则新建同名工作表承载内容,存在则先清空原有内容避免新旧数据重叠
  • 仅读取源表数据范围内的纯值内容写入目标表,不携带公式、格式、数据校验规则等额外内容,完全匹配需求

参考代码

function copyMultiSheetsValuesOnly() {
  // 配置区域 请根据实际情况修改
  const sourceSsId = 'XYZ'; // 替换为你的源电子表格ID
  const copySheetNames = ['ABC']; // 在此数组内填写所有需要复制的工作表名称,例如['ABC', '销售数据', '库存表']
  
  const sourceSs = SpreadsheetApp.openById(sourceSsId);
  const targetSs = SpreadsheetApp.getActiveSpreadsheet();

  copySheetNames.forEach(sheetName => {
    // 读取源表 不存在对应名称工作表时跳过
    const sourceSheet = sourceSs.getSheetByName(sheetName);
    if (!sourceSheet) {
      console.log(`源表中未找到名称为「${sheetName}」的工作表,已跳过`);
      return;
    }

    // 获取源表全量纯值数据
    const sourceDataRange = sourceSheet.getDataRange();
    const sourceValues = sourceDataRange.getValues();
    const totalRows = sourceDataRange.getNumRows();
    const totalCols = sourceDataRange.getNumColumns();

    // 处理目标表
    let targetSheet = targetSs.getSheetByName(sheetName);
    if (!targetSheet) {
      // 不存在同名表则新建
      targetSheet = targetSs.insertSheet(sheetName);
    } else {
      // 存在同名表则清空原有内容
      targetSheet.clearContents();
    }

    // 写入数据
    targetSheet.getRange(1, 1, totalRows, totalCols).setValues(sourceValues);
    console.log(`工作表「${sheetName}」内容复制完成`);
  })
}

使用说明

  • 将代码中sourceSsId对应的XYZ替换为你实际的源电子表格ID
  • 在copySheetNames数组中增删需要复制的工作表名称,支持同时配置多个标签页
  • 脚本运行时不会复制源表的公式、单元格格式、条件规则,仅写入单元格显示的纯值内容
  • 若目标表格中已存在同名工作表,脚本会清空该表现有内容后写入新数据,不会额外创建重复名称的工作表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:36:19