Estoy usando este script y un formulario de entrada para buscar en una hoja de cálculo de Google, este script tiene un rango de una hoja, es decir, Datos, pero necesito extender mi rango a todas las hojas en la misma hoja de cálculo, ¿alguna idea?
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); } /* PROCESS FORM */ function processForm(formObject) { var concat = formObject.searchtext + formObject.searchtext2; var result = ""; if (concat) {//Execute if form passes search text result = search(concat); } return result; } //SEARCH FOR MATCHED CONTENTS ; function search(searchtext) { var spreadsheetId = ' '; //** CHANGE !!!! var sheetName = "Data" var range = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName).getDataRange(); var data = range.getValues(); var ar = []; data.forEach(function (f) { if (~[f[8]].indexOf(searchtext)) { ar.push([f[2], f[3], f[4], f[5], f[6], f[7]]); } }); return ar; }Creo que su objetivo es el siguiente.
En este caso, me gustaría proponer modificar la función de search de la siguiente manera.
function search(searchtext) { return SpreadsheetApp .getActiveSpreadsheet() .getSheets() .flatMap(s => s .getDataRange() .getValues() .filter(r => r[8] && r[8].includes(searchtext)) .map(([,,c,d,e,f,g,h]) => [c,d,e,f,g,h]) ); }