Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

206
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda