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

如何使用Google Apps Script复制谷歌表格保留条件格式并移除Importrange公式

解决方案

实现逻辑

先完整复制原表格保留所有格式(包含条件格式、单元格样式、工作表结构等),再将Importrange公式对应单元格替换为显示值,不需要调整格式相关配置,不会丢失原有样式。

操作步骤

  • 打开你需要处理的原谷歌表格,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑器
  • 删除编辑器内默认的空白代码,粘贴下方提供的脚本
  • 将脚本第一行的原表格ID替换为你的表格ID,可从浏览器地址栏spreadsheets/d/和/edit之间的字符串获取
  • 点击编辑器顶部的运行按钮,首次运行需要按提示完成权限授权,授权完成后等待脚本执行结束即可
  • 执行完成后你的谷歌云端硬盘根目录会生成命名为「原表格名称_值复制版」的新文件,就是符合要求的目标表格

完整脚本(删除所有公式,仅保留值)

如果需要移除所有公式,只保留所有数据和格式,使用以下代码:

function copySheetWithoutFormula() {
  // 替换为你的原表格ID
  const ORIGIN_SPREADSHEET_ID = "这里替换为你的原表格ID";
  const originSs = SpreadsheetApp.openById(ORIGIN_SPREADSHEET_ID);
  // 复制整个表格,完整保留所有格式配置
  const newSs = originSs.copy(`${originSs.getName()}_值复制版`);

  // 遍历新表格所有工作表,将公式替换为显示值
  newSs.getSheets().forEach(sheet => {
    const dataRange = sheet.getDataRange();
    dataRange.copyTo(dataRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  });

  SpreadsheetApp.getUi().alert(`处理完成,新表格名称:${newSs.getName()}`);
}

可选脚本(仅删除IMPORTRANGE公式,保留其他公式)

如果你还有其他公式需要保留,只需要移除Importrange相关公式,使用以下代码替换上面脚本的遍历部分即可:

// 遍历新表格所有工作表,仅替换包含IMPORTRANGE的公式为值
newSs.getSheets().forEach(sheet => {
  const dataRange = sheet.getDataRange();
  const formulas = dataRange.getFormulas();
  const values = dataRange.getValues();
  for (let row = 0; row < formulas.length; row++) {
    for (let col = 0; col < formulas[row].length; col++) {
      if (formulas[row][col].toUpperCase().includes("IMPORTRANGE")) {
        sheet.getRange(row + 1, col + 1).setValue(values[row][col]);
      }
    }
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:48:03