You need to enable JavaScript to run this app. 如何修改Google Apps Script实现跨多个Google Sheets工作簿搜索返回匹配行
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Google Apps Script实现跨多个Google Sheets工作簿搜索返回匹配行

修改方案

你只需要修改Code.gs文件的search函数即可,Index.html因为表头结构完全匹配不需要调整。

1 替换Code.gs的search函数代码

把原来的search函数替换为以下代码,记得替换注释中标注的两个工作簿ID和对应数据范围:

//SEARCH FOR MATCHED CONTENTS 
function search(searchtext){
  // 配置两个待搜索的工作簿信息
  const spreadsheets = [
    {
      id: '1443X5UzzRfpYachZZLFrmYFq821ioioqwFAnASY', // 替换为第一个工作簿ID
      range: 'TEST!A2:F' // 替换为第一个工作簿的搜索数据范围
    },
    {
      id: '替换为第二个工作簿的ID', // 第二个工作簿ID
      range: '替换为第二个工作簿的搜索数据范围' // 第二个工作簿的搜索范围,列数、列顺序要和第一个完全一致
    }
  ]
  const ar = [];

  // 遍历所有工作簿逐个搜索、合并结果
  spreadsheets.forEach(sheetConfig => {
    const data = Sheets.Spreadsheets.Values.get(sheetConfig.id, sheetConfig.range).values;
    data.forEach(f => {
      if (~f.indexOf(searchtext)) {
        ar.push(f);
        // 【可选】如果需要标注数据来自哪个工作簿,可以把上面一行替换为下面的代码,在最后一列加来源标记
        // ar.push([...f, sheetConfig.id === spreadsheets[0].id ? '工作簿1' : '工作簿2'])
      }
    })
  })

  return ar;
}

2 注意事项

  • 确保你当前部署脚本的Google账号对两个工作簿都有至少查看权限
  • 如果脚本运行报错提示找不到Sheets对象,需要在Apps Script编辑器的「服务」里添加「Google Sheets API」服务
  • 如果开启了来源标注功能,需要在Index.html的表头部分新增对应的<th scope='col'>来源</th>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 11:42:02