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

Google Sheets主表批量同步至分校表并按校区名过滤需求

Google Sheets 分校数据自动同步方案

核心逻辑

替换低效的importrange手动配置,通过Google Apps Script实现主表更新时,自动筛选第三列匹配分校名称的记录,同步到对应分校副本。

分步实现

1. 分校副本前置设置

在每个分校副本的固定位置(比如A1单元格)写入自身校区名称,脚本会以此作为匹配条件。

2. 主工作簿脚本代码

将以下代码粘贴到主工作簿的脚本编辑器中(工具 > 脚本编辑器):

function syncCampusData() {
  // 主工作簿基础配置
  const mainSpreadsheetId = "你的主工作簿ID";
  const mainSheet = SpreadsheetApp.openById(mainSpreadsheetId).getSheetByName("independent data");
  const allData = mainSheet.getDataRange().getValues();
  const headerRow = allData[0];
  const dataRows = allData.slice(1);

  // 校区-副本映射:key是校区名称,value是对应分校工作簿ID
  const campusMap = {
    "XX校区": "分校工作簿ID1",
    "YY校区": "分校工作簿ID2",
    // 新增校区直接在这里追加
  };

  // 遍历同步每个分校数据
  for (const [campusName, targetId] of Object.entries(campusMap)) {
    try {
      const targetSheet = SpreadsheetApp.openById(targetId).getSheetByName("数据接收标签页"); // 替换成分校的目标标签页名
      // 筛选第三列(数组索引为2)匹配当前校区的行
      const matchedRows = dataRows.filter(row => row[2] === campusName);
      
      // 清空目标表旧数据(保留表头)
      if (targetSheet.getLastRow() > 1) {
        targetSheet.getRange(2, 1, targetSheet.getLastRow() - 1, targetSheet.getLastColumn()).clearContent();
      }
      
      // 写入筛选后的数据
      if (matchedRows.length > 0) {
        targetSheet.getRange(2, 1, matchedRows.length, matchedRows[0].length).setValues(matchedRows);
      }
    } catch (err) {
      console.error(`同步${campusName}失败: ${err.message}`);
    }
  }
}

// 创建自动触发:主表编辑时同步
function setupAutoTrigger() {
  const mainSS = SpreadsheetApp.openById("你的主工作簿ID");
  ScriptApp.newTrigger("syncCampusData")
    .forSpreadsheet(mainSS)
    .onEdit()
    .create();
}

3. 权限与触发配置

  • 首次运行setupAutoTrigger,按提示完成权限授权(需允许脚本访问Google Sheets)
  • 确保主工作簿和所有分校副本已共享给脚本运行账号(或设置为组织内可编辑)

优化建议

  • 若校区数量频繁增加,可把campusMap的配置移到主工作簿的单独标签页,脚本动态读取该标签页的映射数据,无需每次修改代码
  • 若无需实时同步,可将触发器改为定时触发(比如每日凌晨执行),降低资源占用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:55:54