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 回答
现在可以使用 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
});
这也是从上面给出的问题中获得的
除了使用提供的“上传”和转换功能外,它目前不可用。在此处请求增强请求: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 Apps 脚本 -菜单 > 资源 > 高级 Google 服务和菜单 > 资源 > 高级 Google 服务 > Google API 控制台中启用高级驱动器服务。
这是我用来将 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
. 在这里阅读更多。
解决方案最初来源于这篇文章。