我创建了一个代码来替换Google幻灯片上的占位符。该项目的起点是Google表单。提交Google表单后-然后将来自Google表单的相关数据输入到Google幻灯片模板中。参见下面的代码。我想在表格上创建一个问题,使人们能够选择要包含的多张幻灯片(例如,10张中有2张凭据幻灯片)
function PoD() {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("A-PoD").activate();
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow()
for (var i =2;i<lr;i++){
if(ss.getRange(i, 1).getValue()){
//Make a copy of the template file
var documentId = DriveApp.getFileById('1REHMrl6kfzXbgSipvBDkNitkfsM8tJsUSAICggxNsHw').makeCopy().getId();
var Name_of_programme = ss.getRange(i, 2).getValue();
DriveApp.getFileById(documentId).setName("PwC's Academy_"+Name_of_client+"_"+Name_of_programme+"_"+Month);
var FileName = Name_of_programme;
//Get the document body as a variable
var body = SlidesApp.openById(documentId);
body.replaceAllText('{Name of programme}', Name_of_programme);
var lastSlide = body.getSlides();
lastSlide[5].remove();
我希望继续编写脚本,以包括选择多个幻灯片的功能。我看到了下面的脚本来复制一张幻灯片,但无法弄清楚如何轻松地复制多张幻灯片。
var srcPresentationId = "### source fileId ###";
var copysrcSlideIndex = 0; // 0 means page 1.
var copydstSlideIndex = 0; // 0 means page 1.
var src = SlidesApp.openById(srcPresentationId).getSlides()[copysrcSlideIndex];
SlidesApp.getActivePresentation().insertSlide(copydstSlideIndex, src);
我想让人们选择要在Google表单中包括哪些幻灯片作为多项选择。
在脚本的后端,我需要用幻灯片编号映射幻灯片的名称吗?还是可以在每张幻灯片的文本框中包含唯一的引用,然后选择相关的幻灯片?在这里大声思考。任何指导将不胜感激。
答案 0 :(得分:2)
我可以像上面那样理解。如果我的理解是正确的,那么这个答案呢?请认为这只是几个可能的答案之一。
在运行脚本之前,请设置变量。
function myFunction() {
var copyPageNumbers = [5, 7, 9]; // Please set the page number. This is not the index. So the 1st page is 1.
var masterGoogleSlidesId = "###"; // Please set the master Google Slides ID.
var destinationGoogleSlidesId = "###"; // Please set the destination Google Slides ID.
var offset = 1;
var src = SlidesApp.openById(masterGoogleSlidesId);
var dst = SlidesApp.openById(destinationGoogleSlidesId);
var slides = src.getSlides();
var page = 0;
slides.forEach(function(slide, i) {
if (copyPageNumbers.indexOf(i + 1) != -1) {
dst.insertSlide(offset + page, slide);
page++;
}
});
}
function myFunction() {
var copyPageNumbers = [5, 7, 9]; // Please set the page number. This is not the index. So the 1st page is 1.
var masterGoogleSlidesId = "###"; // Please set the master Google Slides ID.
var destinationGoogleSlidesId = "###"; // Please set the destination Google Slides ID.
var offset = 1;
var src = SlidesApp.openById(masterGoogleSlidesId);
var dst = SlidesApp.openById(destinationGoogleSlidesId);
var slides = src.getSlides();
copyPageNumbers.forEach(function(p, i) {
dst.insertSlide(offset + i, slides[p - 1]);
});
}
var offset = 0
时,将从目标Google幻灯片的第一页复制Google幻灯片母版的5、7和9页。