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



我在Google Drive中存储了一个.xls文件。我想从谷歌应用程序脚本将其转换为谷歌表格电子表格文件格式。有没有办法在没有外部解决方案的情况下做到这一点?

现在可以使用高级驱动器服务:

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
  });

这也是从上面给出的问题

中获得的

除了使用交付的"上传"和转换功能外,它目前还不可用。在此处请求增强请求:http://code.google.com/p/google-apps-script-issues/issues/detail?id=1019

以下是在特定文件夹中创建文件的完整代码(这是一个暗示,但在@ben visness评论中对我来说并不完全明显)

var file = { 
    "title": filename, 
    "parents": [{"id": folderId}]
};
file = Drive.Files.insert(file, blobObj, {
    "convert": true
});

注意:这需要从Google应用程序脚本-菜单>资源>高级Google服务功能表>资源>先进Google服务>Google API控制台中启用高级驱动器服务。

以下是我用来将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()轻松地获得原始文件的文件夹。

您还必须启用名为";驱动API";以便使用CCD_ 3。点击此处阅读更多信息。

解决方案最初源自本文。

最新更新