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

137
Vistas
Importar marcadores en una nueva columna en Hojas de cálculo de Google con Apps Script

Tengo esta función getMarkers() que encuentra {{marcadores}} de un documento de Google y los coloca en columnas en mi hoja de cálculo de Google. Funciona bien, pero si agrego un nuevo marcador en Doc, no se importa en una nueva columna y el contenido queda de forma incorrecta. El usuario escribe el contenido después de usar la función. Este es el esquema:

 {{marker 1}} {{marker 2}} {{marker 3}} content 1 content 2 content 3

y luego cuando agrego un nuevo marcador (entre 1 y 2 por ejemplo):

 {{marker 1}} {{new marker}} {{marker 2}} {{marker 3}} content 1 content 2 content 3

Quiero que el contenido se ajuste a su marcador.

 function getMarkers(){ var ss = SpreadsheetApp.getActive(); var sh = SpreadsheetApp.getActiveSheet(); //var ws = ss.getSheetByName('DS') || ss.insertSheet('DS', 1); var docID = "XXXXXXXXXXXXXXXXXXXXXXXX"; var docFile = DriveApp.getFileById(docID); docFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); var identifier = { start: `{{`, start_include: true, end: `}}`, end_include: true }; var docMarkers = getDocItems(docID, identifier); var rw1 = [docMarkers]; var rw2 = rw1[0].map((col, i) => rw1.map(row => row[i])); var markerList = rw2[0].map((col, i) => rw2.map(row => row[i])); sh.getRange(1,1,1,rw2.length).setValues(markerList); }

.

 function getDocItems(docID, identifier){ var body = DocumentApp.openById(docID).getBody(); var docText = body.getText(); // Check if search characters are to be included. var startLen = identifier.start_include ? 0 : identifier.start.length; var endLen = identifier.end_include ? 0 : identifier.end.length; // Set up the reference loop var textStart = 0; var doc = docText; var docList = []; // Loop through text grab the identifier items. Start loop from last set of end identfiers. while(textStart > -1){ var textStart = doc.indexOf(identifier.start); if(textStart === -1){ break; } else{ var textEnd = doc.indexOf(identifier.end) + identifier.end.length; var word = doc.substring(textStart,textEnd); doc = doc.substring(textEnd); docList.push(word.substring(startLen,word.length - endLen)); }; }; //return a unique set of identifiers. return [...new Set(docList)]; }
about 4 years ago · Juan Pablo Isaza
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