Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

210
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!