При попытке конвертировать 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. Есть ли работа вокруг этого? Или я делаю это неправильно?
Я нашел это, но это противоположно тому, что я пытаюсь достичь.
1 ответ
Он не может конвертировать из формата Powerpoint в Google Slides с помощью getAs()
, Вы можете добиться этого с помощью Drive API. В этой модификации я использовал Drive API, используя Advanced Google Services.
Когда вы используете этот сценарий, пожалуйста, включите Drive API в Advanced 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
,
Рекомендации:
Если я неправильно понимаю ваш вопрос, пожалуйста, скажите мне. Я хотел бы изменить это.