我叫Alexander,我是自由职业者,我的主要专业是Google Apps Script。 其中一位客户需要以编程方式将Microsoft Excel文件转换为Google Spreadsheets。 我以前从未遇到过这样的任务,所以我打电话给Google寻求帮助。 我在很多论坛上翻找,但没有找到现成的解决方案。 我不得不写我的自行车。 尽管代码很短,但是却花了很长时间才找到解决方案。 这是发生了什么:
function convert(folderId) { var folderIncoming = DriveApp.getFolderById(folderId); var files = folderIncoming.getFilesByType(MimeType.MICROSOFT_EXCEL_LEGACY); while (files.hasNext()) { var source = files.next(); var sourceId = source.getId(); var fileName = source.getName().replace('.xls', ''); var file = { title: fileName, }; file = Drive.Files.copy(file, sourceId, {convert: true}); } }
该函数将需要转换的文件所在的文件夹的ID作为参数。 在此文件夹中查找与MimeType.MICROSOFT_EXCEL_LEGACY类型相对应的文件,它们是Microsoft Excel XLS文档,并在同一文件夹中创建它们的副本。 复制时,将转换格式,由convert:true参数负责。 如果原始文件名中存在名称.xls,则将其删除。
如果需要处理XLSX文件,则将类型更改为MimeType.MICROSOFT_EXCEL并
var fileName = source.getName().replace('.xls', ''); var fileName = source.getName().replace('.xlsx', '');
但是,如果您仅复制此代码并尝试运行,它将抛出错误” ReferenceError:未定义“ Drive”对象。“要修复它,您需要在“ Resources”菜单的“ Resources”菜单中选择“ Additional Google functions ...”项。在出现的窗口中,找到“ Drive API”并将其打开。

然后,在“资源”菜单中,选择“开发者控制台项目...”。 在出现的窗口中,点击带有项目ID的链接。

在出现的页面的左侧菜单中,选择“ API和身份验证”,然后选择“ API”。 API列表将出现,我们在其中单击“驱动器API”链接。

点击“启用API”按钮-完成。 你可以跑步。
同样,您可以转换其他格式的文件。
希望这篇文章可以节省时间。