如何在Google Sheets中使用Google Script实现跨多工作表检索数据?
解决方案
你只需遍历目标表格的全部工作表,将各表数据合并到同一个全局数组后,再执行原有的姓名/密码检索逻辑即可,修改后的参考代码如下:
// 先打开目标表格 var targetSpreadsheet = SpreadsheetApp.openById(spreadsheetId); // 获取表格下所有工作表 var allSheets = targetSpreadsheet.getSheets(); var mergedData = []; allSheets.forEach(function (currentSheet) { // 可选:如果有不需要纳入检索的工作表,可在此处加过滤逻辑,例:跳过名为「配置」的工作表 // if (currentSheet.getName() === '配置') return; var sheetValues = currentSheet.getDataRange().getValues(); // 可选:如果所有工作表第一行都是表头,可开启下面的逻辑,避免重复合并表头 // if (allSheets.indexOf(currentSheet) !== 0) sheetValues = sheetValues.slice(1); // 合并当前工作表数据到全局数组 mergedData = mergedData.concat(sheetValues); }); var ar = []; // 后续原有检索逻辑直接操作mergedData数组即可
注意事项
- 请确保所有纳入检索的工作表列顺序/结构一致,避免字段匹配错位导致检索结果出错
- 数据量较大时建议加缓存逻辑,无需每次执行都全量拉取所有工作表数据,降低脚本超时概率
- 若不同工作表的检索规则有差异,可以在遍历阶段针对特定工作表单独做数据处理
内容的提问来源于stack exchange,提问作者ahsan
相关产品推荐
相关产品推荐

