如何修改Google Script将谷歌表格搜索范围扩展到所有工作表
修改方案
你只需要替换原有代码里的search函数即可,修改后逻辑会自动遍历当前表格的所有工作表执行搜索,匹配规则和原有逻辑完全一致:
function doGet(e) { return HtmlService.createTemplateFromFile("Index").evaluate() .setTitle("WebApp: Search By Password") .addMetaTag('viewport', 'width=device-width, initial-scale=1') .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); } /* 处理表单提交 */ function processForm(formObject) { var concat = formObject.searchtext + formObject.searchtext2; var result = ""; if (concat) {// 存在搜索内容时执行 result = search(concat); } return result; } // 匹配搜索内容 function search(searchtext) { var spreadsheetId = ' '; //** 请修改为你的表格ID !!!! // 获取当前表格所有工作表 var sheets = SpreadsheetApp.openById(spreadsheetId).getSheets(); var ar = []; // 遍历每个工作表 sheets.forEach(function(sheet) { var range = sheet.getDataRange(); var data = range.getValues(); // 遍历当前工作表每行数据 data.forEach(function (f) { // 原有匹配规则:判断第9列(索引为8)是否包含搜索词 if (~[f[8]].indexOf(searchtext)) { ar.push([f[2], f[3], f[4], f[5], f[6], f[7]]); } }); }) return ar; }
可选配置:如果你需要排除部分工作表不参与搜索,可以在遍历工作表的逻辑内加判断,比如要跳过名为
统计汇总的工作表,只需在sheets.forEach的回调函数第一行加如下代码:if(sheet.getName() === '统计汇总') return;
内容的提问来源于stack exchange,提问作者ahsan
相关产品推荐
相关产品推荐

