I have a Google sheet table.
I want to transfer this data into Google Slides. I have the following code:
var templateId = "XXX";
var presentationTemplate = DriveApp.getFileById(templateId);
var copy = presentationTemplate.makeCopy();
The objective is to create slides for each row. The design for each slide is different. First slide is in table and second slide has a text.
function newPresentation () {
let templateId = "XXX";
let presentationTemplate = DriveApp.getFileById(templateId);
let copy = presentationTemplate.makeCopy().getId();
let deck = SlidesApp.openById(copy);
let slides = deck.getSlides();
// Load data from the spreadsheet.
let dataRange = SpreadsheetApp.getActive().getDataRange();
let sheetContents = dataRange.getValues();
sheetContents.forEach(function (row) {
// Insert a new slide by duplicating the master slide.
let firstSlide = slides[0];
let secondSlide = slides[1];
// Populate data in the slide that was created
firstSlide.replaceAllText("{{item}}", row[0]);
firstSlide.replaceAllText("{{item}}", row[1]);
secondSlide.replaceAllText("{{item}}", row[0]);
secondSlide.replaceAllText("{{item}}", row[1]);
})
}
From your provided template Slide, I understood your expected result is as follows.
{{item}}
and{{results}}
.In this case, how about the following modification?
In your showing script, the 1st header row is retrieved. In your situation, the 1st header row is required to be skipped. And, the number of loops is required to depend on the number of slide pages.
Modified script: