Actualmente estoy trabajando en un proyecto en el que envío datos a una hoja de Google a través del script de la aplicación. Necesito cambiar el valor de algunos datos y usé createTextFinder . Gracias a @Mimi en este hilo. Pero el hecho es que necesito reemplazar más de un texto. Necesito cambiar el texto cuando se agregan los datos. gracias de antemano
Aquí está mi código
function addUser(sheet) { var FILE = SpreadsheetApp.openById("XXXXXXXXXXXXX"); var sheet = FILE.getSheetByName("Sheet1"); var id = "True"; var name = "FALSE"; var t1 = createTextFinder("TRUE").replaceAllWith("YES") var t2 = createTextFinder("FALSE").replaceAllWith("NO") sheet.appendRow([id,name]).t1.t2;Desde I need to change the text when the data is appending. , en este caso, ¿qué tal la siguiente modificación?
var t1 = createTextFinder("TRUE").replaceAllWith("YES") var t2 = createTextFinder("FALSE").replaceAllWith("NO") sheet.appendRow([id,name]).t1.t2; var values = [id, name].map(e => { var temp = e.toUpperCase(); return temp == "TRUE" ? "YES" : temp == "FALSE" ? "NO" : e; }); sheet.appendRow(values);Por ejemplo, cuando deba usar TextFinder, ¿qué tal la siguiente modificación?
De
var t1 = createTextFinder("TRUE").replaceAllWith("YES") var t2 = createTextFinder("FALSE").replaceAllWith("NO") sheet.appendRow([id,name]).t1.t2;A
sheet.appendRow([id, name]); sheet.createTextFinder("TRUE").replaceAllWith("YES"); sheet.createTextFinder("FALSE").replaceAllWith("NO");o, cuando desee usar TextFinder en la fila adjunta, también puede usar el siguiente script modificado.
sheet.appendRow([id, name]); // SpreadsheetApp.flush(); // This might be not required to be used. const range = sheet.getRange(sheet.getLastRow(), 1, 1, 2); range.createTextFinder("TRUE").replaceAllWith("YES"); range.createTextFinder("FALSE").replaceAllWith("NO"); function addUser() { const txtA = ['txt1', 'txt2', 'text3']; const rplA = ['rpl1', 'rpl2', 'repl3']; var ss = SpreadsheetApp.openById("XXXXXXXXXXXXX"); var sh = ss.getSheetByName("Sheet1"); txtA.forEach((t, i) => { let f = sh.createTextFinder(t).findAll(); if (f) { f.forEach(r => { r.setValue(r.getValue().replace(txtA[i], rplA[i])); }); } }); }