问题描述
我有一些代码可以将行从Google表格中拉到Google幻灯片中。但是,我想添加逻辑,该逻辑将首先删除第二张幻灯片之后的所有幻灯片(如果有的话)。然后,它应该执行以下所有操作(替换文字)。我该怎么做?
function generateSlides() {
var dataSpreadsheetUrl = "https://docs.google.com/spreadsheets/d/1kLb0bIVeDTb8He";
var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl);
var deck = SlidesApp.getActivePresentation();
var sheet = ss.getSheetByName('Form_Responses');
var values = sheet.getRange('A2:G20').getValues();
var slides = deck.getSlides();
var templateSlide = slides[1];
var presLength = slides.length;
values.forEach(function(page){
if(page[0]){
var Email = page[1]; #column 2
var Name = page[2]; #column 3
var timestamp = page [0]; # column 1.
var shapes = (newSlide.getShapes());
shapes.forEach(function(shape){
shape.getText().replaceAllText('{{Email}}',Email);
shape.getText().replaceAllText('{{Name}}',Name);
});
presLength = slides.length;
newSlide.move(presLength);
} // end our conditional statement
}); //close our loop of values
}
解决方法
- 使用getSlides获取演示文稿所有幻灯片的数组
- 按与幻灯片在演示文稿中位置相对应的索引访问各个幻灯片
- 创建一个
for
循环以根据索引对所有感兴趣的幻灯片进行遍历 - 使用Slide.remove()删除幻灯片
示例代码段
var slides = deck.getSlides();
//change i to any other index if desired
for (var i = 2; i < slides.length; i++){
slides[i].remove()
}