在谷歌应用脚​​本中将.xls转换为谷歌电子表格

时间:2012-07-27 05:19:36

标签: google-apps-script google-sheets google-drive-api

我在Google云端硬盘中存储了一个.xls文件。我想将其从Google Apps脚本转换为Google表格电子表格文件格式。没有外部解决方案,有没有办法做到这一点?

4 个答案:

答案 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文章。