I’m new at GAS and I was following a tutorial on Youtube for knowing how it works on the diferent plataforms on Google Workspace. But, when I executed my code in a Google Sheets it prompted me this error: “TypeError: Cannot read properties of null (reading ‘getBody’)”.
This is the code:
function InsertarDatos(){
// obtenemos el documento de origen
var DocActual = DriveApp.getFileById("1kM-zglMjbckKnacmV5K21j1r3CjDmn70yrzsCcKrNdw");
var fila = 2;
var nombreCelda = "A" + fila;
var hojaActual = SpreadsheetApp.getActive();
var celdaActual = hojaActual.getRange(nombreCelda);
// El bucle analiza las celdas, genera los documentos y bajará hasta encontrar una celda en blanco la qual hará que el bucle se detenga
while(!celdaActual.isBlank()){
// creamos un nuevo documento
var DocNuevo = DocActual.makeCopy("Nombre: " + hojaActual.getRange("A" + fila).getValue());
// O TAMBIÉN PODEMOS HACERLO DE ESTA MANERA
// var DocNuevo = DocActual.makeCopy("Nombre: " + celdaActual);
var documento = DocumentApp.getActiveDocument();
// obtener fecha actual
var fecha = new Date();
var mes = fecha.getMonth() + 1;
var dia = fecha.getDate();
var ano = fecha.getFullYear();
// obtener el mes en formato texto
// switch (mes) {
// case 0: mes = "enero"; break;
// case 1: mes = "febrero"; break;
// case 2: mes = "marzo"; break;
// case 3: mes = "abril"; break;
// case 4: mes = "mayo"; break;
// case 5: mes = "junio"; break;
// case 6: mes = "julio"; break;
// case 7: mes = "agosto"; break;
// case 8: mes = "septiembre"; break;
// case 9: mes = "octubre"; break;
// case 10: mes = "noviembre"; break;
// case 11: mes = "diciembre"; break;
// }
var fechaT = "Certificado emitido el día " + dia + "del mes " + mes + " de " + ano + ".";
// reemplazamos los datos
documento.getBody().replaceText("<<nombre>>", hojaActual.getRange("A" + fila).getValue());
documento.getBody().replaceText("<<dni>>", hojaActual.getRange("B" + fila).getValue());
documento.getBody().replaceText("<<curso>>", hojaActual.getRange("C" + fila).getValue());
documento.getBody().replaceText("<<empresa>>", hojaActual.getRange("D" + fila).getValue());
documento.getBody().replaceText("<<calific>>", hojaActual.getRange("E" + fila).getValue());
documento.getBody().replaceText("<<fecha>>", fechaT);
// bajamos una fila y actualizamos el nombre de la celda y el de la celda actual
fila++;
nombreCelda = "A" + fila;
celdaActual = hojaActual.getRange(nombreCelda);
}
}
I expected that it created several documents replacing the different items that I would put in a database in a Google Sheets.The expected document
New contributor
Asier Párraga is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
0