【发布时间】:2020-02-12 20:53:32
【问题描述】:
我创建了一个代码来替换谷歌幻灯片上的占位符。这个项目的起点是一个谷歌表单。一旦提交了谷歌表单 - 然后谷歌表单的相关数据将输入谷歌幻灯片模板。请参见下面的代码。我希望在表单上创建一个问题,人们可以在其中选择要包含的多张幻灯片(例如 2 张证书幻灯片,共 10 张)
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 表单中作为多项选择。
在脚本的后端,我是否需要将幻灯片的名称与幻灯片编号进行映射?或者可以在每张幻灯片的文本框中包含唯一的参考,然后选择相关的幻灯片?在这里大声思考。任何指导将不胜感激。
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。我认为这几张幻灯片可以复制到其他 Google 幻灯片。但是从
At the back end of the script, would I need to map the names of the slides with slide numbers? or can have include a unique reference in a text box on each slide and then select the relevant slide?,我无法理解你的目标。我能问一下你的目标和当前的问题吗? -
@Tanaike 感谢您的回复。我的目标是将多张幻灯片从母版幻灯片复制到复制的模板。我想在谷歌表格上控制它,这就是为什么我问我如何才能做到这一点。
-
感谢您的回复。我可以理解
copy multiple slides from a master slide deck to a copied template。关于I would like to control this on a google sheet,当我能正确理解你的目标并清楚地看到它的愿景时,我会想办法。 -
例如,我在 Master deck 上有 10 张幻灯片。我将有一个谷歌表单,让人们可以选择他们想要包含的幻灯片。提交表单后,我有一个在后台运行的应用程序脚本。表单的响应链接到执行 appscript 的 google 表格。
-
所以基本上我希望根据谷歌表单中记录在谷歌表格上的回复复制多张幻灯片。如果我知道如何同时复制多张纸,那么我可以对表单进行逆向工程,以确保幻灯片参考与主幻灯片相匹配。
标签: javascript google-apps-script google-sheets google-slides-api google-slides