尝试将 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
。
参考文献:
如果我误解了你的问题,请告诉我。我想修改一下。
在我的 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
。
参考文献:
如果我误解了你的问题,请告诉我。我想修改一下。