При попытке конвертировать ppt в Google Slide появляется ошибка конвертации

В моей программе сценария 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. Есть ли какой-нибудь способ обойти это? Или я не так делаю?

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


person Joshua Jones    schedule 31.12.2018    source источник


Ответы (1)


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

При использовании этого сценария включите Drive API в расширенных службах Google и консоли API. Вы можете узнать об этом здесь.

Измененный скрипт:

Пожалуйста, измените следующее.

From:
var sheet = powerPoint.getBlob().getAs(MimeType.GOOGLE_SLIDES);
DriveApp.getFolderById(url).createFile(sheet)
To:
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.

Использованная литература:

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

person Tanaike    schedule 31.12.2018