8

I have an .xls file stored in Google Drive. I want to convert it to the Google Sheets spreadsheet file format from Google Apps Script. Is there any way to do this without external solutions?

4

4 回答 4

7

现在可以使用 Advanced Drive 服务:

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

这也是从上面给出的问题中获得的

于 2016-02-24T09:06:04.693 回答
3

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

于 2012-07-27T13:41:42.463 回答
2

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

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

注意:这需要从 Google Apps 脚本 -菜单 > 资源 > 高级 Google 服务菜单 > 资源 > 高级 Google 服务 > Google API 控制台中启用高级驱动器服务。

于 2018-05-17T14:40:09.627 回答
1

这是我用来将 Excel 文件转换为 Google 表格文件的代码,该文件具有相同的名称和相同的文件夹。

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. 在这里阅读更多。

解决方案最初来源于这篇文章。

于 2020-06-25T18:42:03.920 回答