Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
No puedo encontrar cómo detener el bucle en el script de Google

esta es la primera vez que hago una pregunta. He estado tratando de buscar cosas de secuencias de comandos de Google, pero no entiendo dónde está la comunidad.

Entonces, estoy trabajando en un proyecto de automatización de documentos, donde mi empresa quiere hacer algunos documentos a partir de una hoja de cálculo. Estoy trabajando en el primero, ahora que es difícil, pero he estado tratando de hacer el bucle solo para generar 1 documento, pero sigue generando documentos sin parar, solo con una parada manual puede hacer que se detenga. Aquí está el código que estoy usando

 function createPIN() { const googleDocTemplate = DriveApp.getFileById('1bwuLoNJQOeuBdLa6Nq-G320J6pkpHt-_aSRdbZ8IqJ8'); const destinationFolder = DriveApp.getFolderById('1wzhzMRu6HpP0eOnnFl21ZuPaOOZVqFa4'); const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sisal'); const rows = sheet.getDataRange().getValues(); rows.forEach(function(row, index) { if (index === 0) return; if (rows[3][1] | rows[3][2]) return; const copy = googleDocTemplate.makeCopy('Def1', destinationFolder); const doc = DocumentApp.openById(copy.getId()); const body = doc.getBody(); body.replaceText('{{Project_Name}}', rows[1][1]); Logger.log(rows[1][1]) body.replaceText('{{Name_of_the_Ejido_owner}}', rows[2][1]); Logger.log(rows[2][1]) body.replaceText('{{Project_Technical_Advisor}}', rows[3][1]); Logger.log(rows[3][1]) body.replaceText('{{Total_Area}}', rows[4][1]); body.replaceText('{{Management_Area}}', rows[5][1]); doc.saveAndClose(); const url = doc.getUrl(); sheet.getRange(index + 1, 4).setValue(url) //Manda Url a casilla de link a PIN }) }

Voy a adjuntar la hoja de cálculo con la que estoy trabajando para que pueda ver el origen de los datos. Todavía no puedo hacer que el bucle se detenga. ¿Alguna sugerencia?

Aquí está mi hoja de cálculo

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para cualquiera que intente hacer esto; el problema que tuve fue entender el uso del bucle forEach dentro de la función: en el tutorial que estaba viendo, usaban el bucle para acceder a toda la fila, mientras que, en mi caso, necesitaba usar filas independientes, porque la naturaleza de mi base de datos. Entonces, voy a especificar cómo resolví mi problema:

En primer lugar, voy a hacer que este uso sea más genérico.

 function createPIN() { SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Page1'); const rows = sheet.getDataRange().getValues(); const copy = googleDocTemplate.makeCopy('Def1', destinationFolder); const doc = DocumentApp.openById(copy.getId()); const body = doc.getBody(); ## Just forget the loop body.replaceText('{{Something}}', rows[x][x]); body.replaceText('{{Something2}}', rows[x][y]); doc.saveAndClose(); }

Simplemente no necesita un bucle en absoluto, ya que el objetivo es hacer un documento a la vez.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda