При попытке конвертировать ppt в Google Slide получаю ошибку конвертации - PullRequest
0 голосов
/ 31 декабря 2018

В моей программе скриптов 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) 
    }
 }

После проверки логов появляется ошибка

Исключение: преобразование из application / vnd.openxmlformats-officedocument.presentationml.presentation в application / vnd.google-apps.presentation не поддерживается.

Я знаю в пользовательском интерфейсе GoogleДиск, вы можете открыть PPT в качестве Google Slide.Есть ли работа вокруг этого?Или я делаю это неправильно?

Я нашел это , но это противоположно тому, что я пытаюсь достичь.

1 Ответ

0 голосов
/ 01 января 2019

Невозможно преобразовать из формата Powerpoint в Google Slides с помощью getAs().Вы можете добиться этого с помощью Drive API.В этой модификации я использовал Drive API с помощью Advanced Google Services.

Когда вы используете этот скрипт, пожалуйста, включите Drive API в Advanced Google Services и консоли 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}]}.
  • Если вы хотите получить идентификатор файла из преобразованного файла, используйте var id = Drive.Files.insert({title: powerPoint.getName(), mimeType: MimeType.GOOGLE_SLIDES}, powerPoint.getBlob()).id.

Справочные материалы:

Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.

...