在我的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幻灯片。有什么解决办法吗?还是我做错了?
我确实找到了this,但这与我要实现的目标相反。
答案 0 :(得分:2)
它无法使用getAs()
从Powerpoint格式转换为Google幻灯片。您可以使用Drive API来实现。在此修改中,我通过高级Google服务使用了Drive API。
使用此脚本时,请在Advanced Google Services和API控制台上启用Drive API。您可以在here上看到有关的信息。
请进行如下修改。
从: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
。如果我误解了您的问题,请告诉我。我想修改它。