读取120个Google幻灯片演示文稿的文件夹并将幻灯片导入单个文件的脚本

时间:2019-05-02 03:51:29

标签: google-apps-script google-classroom google-slides-api

我使用Google课堂教高中。我有学生使用Google幻灯片来跟踪他们的项目。我创建了一个模板,幻灯片演示文稿,GC会自动为每个学生创建一个相同的版本,并将它们存储在一个文件夹中。

打开每个演示文稿并仔细阅读以了解学生如何更新模板需要很长时间。

我想编写一个脚本,该脚本将在文件夹中正常工作,一个一个地打开每个演示文稿,并将每个演示文稿的每个幻灯片与原始模板中的相应幻灯片进行比较。如果学生演示文稿中的幻灯片已更改(添加了文本或图像),则希望将该幻灯片导入新的演示文稿中。最后,我想做一个演示文稿,其中包含幻灯片,这些幻灯片是在学生演示文稿中更新的所有幻灯片的副本。

您能帮我做到这一点吗?拜托。

我编写了一个简单的幻灯片脚本,该脚本可以遍历演示文稿中的幻灯片数量,但是我无法弄清楚如何比较幻灯片中的实际内容,并无法基于此比较导入更新的幻灯片。

想要一个脚本来创建幻灯片的演示文稿,这些幻灯片演示文稿是从120个学生演示文稿的文件中提取的,这些演示文稿都是使用相同的原始模板制作的。

这是我编写的脚本,该脚本计算每个演示文稿中的幻灯片数量:


var sourcefile = "0ByRdqL7-G6eXflBpUEIwa0tUcmFERDRMajNQMHZCbllPVHRlVDBzT0tJNVdjY1lDeE1MdE0"

var destination = "1tAGcxlcudN4ThNwjxG89d-Xr0eVUsLFXkhsIFrL2S7M"

function main() {  
  var files = getFiles(sourcefile)  
  var record = []  
  while (files.hasNext()) {  
    var file = files.next();  
    if (file.getMimeType() != "application/vnd.google-apps.presentation") {  
      continue  
    }  
    // (file.getMimeType())  
    record.push(countSlidesInFile(file.getId()))  
  }  
  writeToSheets(record,destination)  
}  

function getFiles(id) {  
  return DriveApp.getFolderById(id).getFiles() 
}  

function writeToSheets(matrix, SheetID) {  
  SpreadsheetApp.openById(SheetID).getSheetByName("Sheet1").getRange(1,1,118,2).setValues(matrix)  
}

function countSlidesInFile(id) {  
  var pres = SlidesApp.openById(id)  
  var slides = pres.getSlides()  
  var numSlides = 0  
  slides.forEach(function() { numSlides += 1 })  
  var presInfo = [pres.getName(), numSlides]  
  return presInfo  
}  

0 个答案:

没有答案