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

如何通过GAS/API获取通过IMPORTRANGE关联父表格的子Google Sheets列表

获取通过IMPORTRANGE关联的Google表格列表

目前Google没有提供直接返回所有关联子表格的官方API,以下是几种间接实现的方案:

1. 通过父表格的权限活动记录筛选

打开目标父表格,按以下步骤操作:

  • 点击右上角「共享」→「管理访问权限」→「查看访问权限和活动」
  • 切换到「活动」标签页,筛选「访问请求」类型
  • 这里会显示所有子表格首次请求IMPORTRANGE授权的记录,每条记录包含请求来源的表格链接,可直接提取整理

注意:活动记录有时间范围限制,超过一定时长的历史记录可能无法查询到。

2. 用Google Apps Script遍历检测(需访问子表格权限)

如果子表格集中在某个Drive文件夹,或你有权限访问目标范围内的表格,可以编写脚本遍历表格,检查是否包含指向父表格的IMPORTRANGE公式:

function findImportRangeChildren(parentSheetId) {
  const parentSheetUrl = `https://docs.google.com/spreadsheets/d/${parentSheetId}`;
  const linkedSheets = [];
  // 替换为要遍历的Drive文件夹ID
  const targetFolder = DriveApp.getFolderById("你的文件夹ID");
  const sheetFiles = targetFolder.getFilesByType(MimeType.GOOGLE_SHEETS);

  while (sheetFiles.hasNext()) {
    const file = sheetFiles.next();
    const spreadsheet = SpreadsheetApp.openById(file.getId());
    let isLinked = false;

    // 遍历表格内所有工作表
    for (const sheet of spreadsheet.getSheets()) {
      const formulas = sheet.getDataRange().getFormulas();
      // 检查所有单元格公式
      for (const row of formulas) {
        for (const formula of row) {
          if (formula.includes("IMPORTRANGE") && formula.includes(parentSheetUrl)) {
            linkedSheets.push({
              表格名称: file.getName(),
              表格ID: file.getId(),
              表格链接: file.getUrl()
            });
            isLinked = true;
            break;
          }
        }
        if (isLinked) break;
      }
      if (isLinked) break;
    }
  }

  // 输出结果到日志,也可写入当前表格
  console.log(linkedSheets);
  return linkedSheets;
}

局限性:只能检测你有权限访问的表格,无法覆盖外部未共享的子表格。

3. Google Workspace管理员专属方案

如果你是Google Workspace管理员,可通过Admin SDK的Reports API查询域内所有表格的IMPORTRANGE使用记录,筛选出指向目标父表格的子表格。该方案需要启用Admin API并配置相应权限,适合企业域内的批量排查场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:58:25