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

207
Vistas
Agregar nuevas diapositivas de datos de hojas en Google Apps Script

Configuré una secuencia de comandos de Google Apps para generar nuevas diapositivas con plantilla a partir de los datos contenidos en una hoja de cálculo . Estos datos se actualizarían periódicamente. Planeo establecer un activador de proyecto para generar nuevas diapositivas de forma regular.

En este momento, evito el problema de duplicar diapositivas durante las actualizaciones activadas simplemente eliminando las diapositivas generadas anteriormente (consulte el ejemplo de código a continuación), pero me encantaría simplemente agregar nuevas diapositivas en lugar de eliminarlas y regenerarlas (para conservar cualquier edición de las diapositivas generadas anteriormente).

¿Algún consejo y truco de desarrolladores de Javascript más experimentados para este codificador de R rebelde sobre cómo abordar este problema?

 function myFunction() { var dataSpreadsheetUrl = "https://docs.google.com/spreadsheets/d/1RjA4BJ4IKyjlh_l6vNaC7Q8wgUet1eNBo4_KJiF1pbQ/edit"; var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl); var deck = SlidesApp.getActivePresentation(); var sheet = ss.getSheetByName('test'); var values = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues(); var slides = deck.getSlides(); var templateSlide = slides[1]; var presLength = slides.length; // remove previously generated slides // TODO: figure out how to append rather than delete and regenerate for (var i = 2; i < slides.length; i++){ slides[i].remove() } values.forEach(function(page){ if(page[0]){ templateSlide.duplicate(); slides = deck.getSlides(); newSlide = slides[2]; var shapes = (newSlide.getShapes()); shapes.forEach(function(shape){ shape.getText().replaceAllText('{{name}}',page[0]); shape.getText().replaceAllText('{{value1}}',page[1]); shape.getText().replaceAllText('{{value2}}',page[2]); shape.getText().replaceAllText('{{value3}}',page[3]); shape.getText().replaceAllText('{{value4}}',page[4]); shape.getText().replaceAllText('{{value5}}',page[5]); shape.getText().replaceAllText('{{value6}}',page[6]); shape.getText().replaceAllText('{{value7}}',page[7]); shape.getText().replaceAllText('{{value8}}',page[8]); shape.getText().replaceAllText('{{value9}}',page[9]); shape.getText().replaceAllText('{{value10}}',page[10]); }); presLength = slides.length; newSlide.move(presLength); } }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¡Lo descubrí actualizando la fila inicial comprobando la longitud de la presentación!

 function myFunction() { var dataSpreadsheetUrl = "https://docs.google.com/spreadsheets/d/1RjA4BJ4IKyjlh_l6vNaC7Q8wgUet1eNBo4_KJiF1pbQ/edit"; var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl); var deck = SlidesApp.getActivePresentation(); var sheet = ss.getSheetByName('test'); var slides = deck.getSlides(); var templateSlide = slides[1]; var presLength = slides.length; // new data update // var rowLength = sheet.getLastRow(); var startRow = 2; // update startRow when not initial run if(presLength != 2){ startRow = presLength; } // save newly generated data range var values = sheet.getRange(startRow, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues(); values.forEach(function(page){ if(page[0]){ templateSlide.duplicate(); slides = deck.getSlides(); newSlide = slides[2]; var shapes = (newSlide.getShapes()); shapes.forEach(function(shape){ shape.getText().replaceAllText('{{name}}',page[0]); shape.getText().replaceAllText('{{value1}}',page[1]); shape.getText().replaceAllText('{{value2}}',page[2]); shape.getText().replaceAllText('{{value3}}',page[3]); shape.getText().replaceAllText('{{value4}}',page[4]); shape.getText().replaceAllText('{{value5}}',page[5]); shape.getText().replaceAllText('{{value6}}',page[6]); shape.getText().replaceAllText('{{value7}}',page[7]); shape.getText().replaceAllText('{{value8}}',page[8]); shape.getText().replaceAllText('{{value9}}',page[9]); shape.getText().replaceAllText('{{value10}}',page[10]); }); presLength = slides.length; newSlide.move(presLength); } }); }
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