使用Google Apps脚本从主幻灯片台复制多张幻灯片

穆罕默德·米沙尔

我创建了一个代码来替换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表单中包括哪些幻灯片作为多项选择。

在脚本的后端,是否需要用幻灯片编号映射幻灯片的名称?还是可以在每张幻灯片的文本框中包含唯一的引用,然后选择相关的幻灯片?在这里大声思考。任何指导将不胜感激。

Tanaike
  • 您要将主Google幻灯片中的5、7和9页(索引分别为4、6和8)复制到其他Google幻灯片。
  • 您想使用Google Apps脚本来实现。

我可以像上面那样理解。如果我的理解是正确的,那么这个答案呢?请认为这只是几个可能的答案之一。

流:

  1. 从主Google幻灯片中检索所有幻灯片。
  2. 在循环中将所需的幻灯片复制到目标Google幻灯片。

模式1:

示例脚本:

在运行脚本之前,请设置变量。

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++;
    }
  });
}

模式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();
  copyPageNumbers.forEach(function(p, i) {
    dst.insertSlide(offset + i, slides[p - 1]);
  });
}

注意:

  • 在这两种模式中,主Google幻灯片的5、7和9页均从目标Google幻灯片的第二页复制而来。
    • var offset = 0使用时,5,7和主谷歌幻灯片9页在谷歌的目标从幻灯片第1页复印。

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取Google幻灯片标题和幻灯片编号的列表-Google Apps脚本

来自分类Dev

Google幻灯片翻译

来自分类Dev

使用Google Apps脚本提取演示文稿中特定幻灯片的URL

来自分类Dev

如何通过Google Apps脚本发布Google幻灯片演示文稿?

来自分类Dev

Google幻灯片API-如何多次复制幻灯片并每次创建唯一的对象ID

来自分类Dev

离子幻灯片内部的Google地图

来自分类Dev

如何使用fancyBox创建幻灯片?

来自分类Dev

使用animate()的简单jQuery幻灯片

来自分类Dev

使用CSS的幻灯片过渡

来自分类Dev

使用angularjs的CSS幻灯片动画

来自分类Dev

在幻灯片放映中使用StopInterval()

来自分类Dev

使用CSS / HTML移动幻灯片

来自分类Dev

使用JS数组的幻灯片放映

来自分类Dev

使用JS数组的幻灯片放映

来自分类Dev

使用JavaScript的幻灯片放映

来自分类Dev

使用viewpager的图像幻灯片

来自分类Dev

使用Applescript的动态幻灯片

来自分类Dev

使用Javascript / CSS的内容幻灯片

来自分类Dev

使用 JFrame 的图像幻灯片

来自分类Dev

使用Google脚本将Google Drive视频插入Google幻灯片

来自分类Dev

无法使用Google Drive API复制Google幻灯片文件

来自分类Dev

Google幻灯片中此幻灯片使用的是哪种语言

来自分类Dev

幻灯片:如何使用div ID跳到不同的幻灯片?

来自分类Dev

使用CSS-HTML的幻灯片仅显示四张幻灯片

来自分类Dev

如何使用OpenXML将幻灯片插入另一张PowerPoint幻灯片?

来自分类Dev

使用幻灯片母版更新PowerPoint 2013幻灯片的页眉和页脚

来自分类Dev

需要使用jQuery帮助的三个div幻灯片(如幻灯片)

来自分类Dev

使用多个滑块获取当前幻灯片和总幻灯片

来自分类Dev

如何使用Apache Tika(在Scala中)逐张幻灯片提取文本幻灯片?

Related 相关文章

  1. 1

    如何获取Google幻灯片标题和幻灯片编号的列表-Google Apps脚本

  2. 2

    Google幻灯片翻译

  3. 3

    使用Google Apps脚本提取演示文稿中特定幻灯片的URL

  4. 4

    如何通过Google Apps脚本发布Google幻灯片演示文稿?

  5. 5

    Google幻灯片API-如何多次复制幻灯片并每次创建唯一的对象ID

  6. 6

    离子幻灯片内部的Google地图

  7. 7

    如何使用fancyBox创建幻灯片?

  8. 8

    使用animate()的简单jQuery幻灯片

  9. 9

    使用CSS的幻灯片过渡

  10. 10

    使用angularjs的CSS幻灯片动画

  11. 11

    在幻灯片放映中使用StopInterval()

  12. 12

    使用CSS / HTML移动幻灯片

  13. 13

    使用JS数组的幻灯片放映

  14. 14

    使用JS数组的幻灯片放映

  15. 15

    使用JavaScript的幻灯片放映

  16. 16

    使用viewpager的图像幻灯片

  17. 17

    使用Applescript的动态幻灯片

  18. 18

    使用Javascript / CSS的内容幻灯片

  19. 19

    使用 JFrame 的图像幻灯片

  20. 20

    使用Google脚本将Google Drive视频插入Google幻灯片

  21. 21

    无法使用Google Drive API复制Google幻灯片文件

  22. 22

    Google幻灯片中此幻灯片使用的是哪种语言

  23. 23

    幻灯片:如何使用div ID跳到不同的幻灯片?

  24. 24

    使用CSS-HTML的幻灯片仅显示四张幻灯片

  25. 25

    如何使用OpenXML将幻灯片插入另一张PowerPoint幻灯片?

  26. 26

    使用幻灯片母版更新PowerPoint 2013幻灯片的页眉和页脚

  27. 27

    需要使用jQuery帮助的三个div幻灯片(如幻灯片)

  28. 28

    使用多个滑块获取当前幻灯片和总幻灯片

  29. 29

    如何使用Apache Tika(在Scala中)逐张幻灯片提取文本幻灯片?

热门标签

归档