尝试将 ppt 转换为 Google 幻灯片时收到转换错误

When trying to convert ppt to Google Slide receive converting error

在我的 google 脚本程序中,我试图遍历一个文件夹并将所有 ppt 文件制作成 google 幻灯片文件。

function makeSlides(url) {
  slideUrls = []; 
  var id = getId(url);
  var powerPoints = DriveApp.getFolderById(id).getFilesByType(MimeType.MICROSOFT_POWERPOINT);

  // turn ppt into slides
  while(powerPoints.hasNext()) {
    var powerPoint = powerPoints.next()
    try{
      var sheet = powerPoint.getBlob().getAs(MimeType.GOOGLE_SLIDES);
      DriveApp.getFolderById(url).createFile(sheet)
      Logger.log("OK " + powerPoint.getName());
    }catch(e) {
      Logger.log("ERROR: " + e) 
    }
 }

检查日志后出现错误

Exception: Converting from application/vnd.openxmlformats-officedocument.presentationml.presentation to application/vnd.google-apps.presentation is not supported.

我知道在 Google 驱动器的 UI 中,您可以将 ppt 打开为 Google 幻灯片。有什么解决办法吗?还是我做错了?

我确实找到了 ,但这与我想要完成的相反。

无法使用 getAs() 从 Powerpoint 格式转换为 Google 幻灯片。您可以使用 Drive API 实现此目的。在这个修改中,我使用了Drive API using Advanced Google Services.

当您使用此脚本时,请在高级 Google 服务和 API 控制台启用驱动器 API。你可以在 .

看到这个

修改后的脚本:

请修改如下

从:
var sheet = powerPoint.getBlob().getAs(MimeType.GOOGLE_SLIDES);
DriveApp.getFolderById(url).createFile(sheet)
到:
Drive.Files.insert({title: powerPoint.getName(), mimeType: MimeType.GOOGLE_SLIDES}, powerPoint.getBlob());

注:

  • 在此修改后的脚本中,将转换后的文件创建到根文件夹中。如果要在特定文件夹中创建,请将{title: powerPoint.getName(), mimeType: MimeType.GOOGLE_SLIDES}修改为{title: powerPoint.getName(), mimeType: MimeType.GOOGLE_SLIDES, parents: [{id: folderId}]}
  • 如果要从转换后的文件中检索文件 ID,请使用 var id = Drive.Files.insert({title: powerPoint.getName(), mimeType: MimeType.GOOGLE_SLIDES}, powerPoint.getBlob()).id

参考文献:

如果我误解了你的问题,请告诉我。我想修改一下。