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

Google Sheets批量更新内部链接GID的Apps Script脚本需求

修复Google Sheets复制工作表后的内部链接失效问题

下面是可直接使用的Apps Script脚本,绑定按钮后一键修复当前工作表内所有失效的内部链接:

function fixInternalLinks() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const currentGid = sheet.getSheetId().toString();
  const dataRange = sheet.getDataRange();
  const richTextValues = dataRange.getRichTextValues();
  
  // 遍历所有单元格
  for (let row = 0; row < richTextValues.length; row++) {
    for (let col = 0; col < richTextValues[row].length; col++) {
      const richText = richTextValues[row][col];
      const runs = richText.getRuns();
      let newRuns = [];
      
      // 处理每个富文本片段
      runs.forEach(run => {
        const url = run.getLinkUrl();
        if (url && url.startsWith('#gid=')) {
          // 替换旧的gid为当前工作表的gid
          const updatedUrl = url.replace(/(#gid=)\d+/, `$1${currentGid}`);
          newRuns.push(run.copy().setLinkUrl(updatedUrl).build());
        } else {
          newRuns.push(run);
        }
      });
      
      // 更新单元格的富文本内容
      if (newRuns.length > 0) {
        const newRichText = SpreadsheetApp.newRichTextValue()
          .appendRuns(newRuns)
          .build();
        dataRange.getCell(row + 1, col + 1).setRichTextValue(newRichText);
      }
    }
  }
  
  SpreadsheetApp.getUi().alert('内部链接修复完成!');
}

使用步骤:

  • 打开目标Google Sheets表格,点击顶部菜单栏「扩展程序」→「Apps 脚本」
  • 在脚本编辑器中删除默认代码,粘贴上述脚本
  • 点击保存按钮,给项目命名(比如「FixInternalLinks」)
  • 返回表格,点击顶部菜单栏「插入」→「绘图」,绘制一个自定义按钮(比如文本设为「修复链接」),保存后点击按钮,选择「分配脚本」,输入fixInternalLinks并确认
  • 后续复制工作表后,点击该按钮即可自动修复所有内部链接

脚本说明:

  • 自动获取当前工作表的gid(即Sheet ID)
  • 遍历工作表所有单元格的富文本内容,精准识别以#gid=开头的内部链接
  • 用当前工作表的gid替换链接中的旧gid,保留原链接的范围参数
  • 修复完成后弹出提示框告知结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:25:32