我在Google云端硬盘中存储了一个.xls文件。我想将其从Google Apps脚本转换为Google表格电子表格文件格式。没有外部解决方案,有没有办法做到这一点?
答案 0 :(得分:6)
现在可以使用高级云端硬盘服务:
https://developers.google.com/apps-script/advanced/drive
使用Drive.Files.insert时,只需将可选参数“convert”设置为“true”。
var file = {
title: 'Converted Spreadsheet'
};
file = Drive.Files.insert(file, xlsxBlob, {
convert: true
});
这也是从上面给出的issue
获得的答案 1 :(得分:3)
除了使用提供的“上传”和转换功能外,目前还无法使用。在此处请求增强请求:http://code.google.com/p/google-apps-script-issues/issues/detail?id=1019
答案 2 :(得分:1)
以下是在特定文件夹中创建文件的完整代码: (这是一个暗示但从@ ben-visness评论中对我来说并不完全明显)
var file = {
"title": filename,
"parents": [{"id": folderId}]
};
file = Drive.Files.insert(file, blobObj, {
"convert": true
});
注意:这需要在Google Apps脚本中启用高级云端硬盘服务 - 菜单>资源>高级Google服务 AND 菜单>资源>高级Google服务> Google API控制台。
答案 3 :(得分:1)
这是我用来将Excel文件转换为具有相同名称和相同文件夹的Google Sheets文件的代码。
var excel = DriveApp.getFileById(...);
var resource = {
title : excel.getName(),
mimeType : MimeType.GOOGLE_SHEETS,
parents: [{id : folder.getId()}],
}
Drive.Files.insert(resource, excel.getBlob());
就我而言,我已经有一个folder
变量可用,该变量代表要将工作表保存到的文件夹,但是您可以使用excel.getParents()
轻松获得原始文件的文件夹。
您还必须启用名为“ Drive API”的高级Google服务,才能使用Drive.Files
。了解更多here。
解决方案最初来自this文章。