Home > OS >  Creating new copies of slides with data from google sheets without loosing original template
Creating new copies of slides with data from google sheets without loosing original template

Time:08-12

I have made a script that replaces placeholder text in google slides with information from google sheet. However once I have run the script once my slides template is overwritten with the injected information.

How to I preserve my original template while generating new copies of my slides?

I use the "SpreadsheetApp.openById" to get the spreadsheet, and I am also able to save a copy of the new file using "DriveApp.getFileById" and "makeCopy()". However my original template is still overwritten and all my placeholder tags {{tag}} are lost.

I use this function for replacing elements in the google slide:

values.forEach(function(row){
var templatevariable= row[0];
var templatevalue= row[1]
Presentation.replaceAllText(templatevariable,templatevalue);  
})

CodePudding user response:

Create a duplicate and then work on the duplicate.


var copiedFile = createCopyUsingDriveApp()

values.forEach(function(row){
  var templatevariable= row[0];
  var templatevalue= row[1]
  copiedField.replaceAllText(templatevariable,templatevalue);  
})


function createCopyUsingDriveApp() {
 // The Id of the presentation to copy
 var templateId = "<SLIDES_ID>";

 // Create a copy of the presentation using DriveApp
 var template = DriveApp.getFileById(templateId);
 var fileName = template.getName();
 var copy = template.makeCopy();
 return copy.setName("Copy of "   fileName);
}
  • Related