Apps Script中Drive.Files.export导出Google文档至Word失败求助
解决Google Apps Script中高级Drive服务导出Word文档的异常问题
问题原因分析
第一个错误(
Export requires alt=media)
官方文档描述存在遗漏:在Google Apps Script环境中,调用Drive.Files.export下载二进制文件内容时,必须显式指定{alt:'media'}参数。如果不添加该参数,API默认返回文件元数据而非导出的二进制内容,因此触发错误。第二个错误(二进制乱码的
HttpResponseException)
添加alt:'media'后,API返回的是Word文件的二进制字节流,此时Drive.Files.export会返回HttpResponse对象,直接赋值给变量会因GAS无法直接解析二进制内容抛出异常。需要通过getBlob()方法提取二进制数据并创建文件。
正确代码示例
// 替换为目标Google文档的ID const fileId = "DriveFileIdHere"; // 调用导出接口并指定alt=media获取二进制响应 const response = Drive.Files.export(fileId, MimeType.MICROSOFT_WORD, {alt: 'media'}); // 将响应转为Blob并创建Word文件 const wordFile = DriveApp.createFile( "导出的文档.docx", // 自定义文件名 response.getBlob(), MimeType.MICROSOFT_WORD ); // 可选:输出文件ID验证 console.log("导出文件ID:" + wordFile.getId());
关键注意事项
- 确保目标文件是原生Google Docs文档,而非已上传的Word文件(已上传的Word文件无需导出,直接下载即可)。
- 遵守官方限制:导出内容大小不能超过10MB。
- MIME类型需匹配:
MimeType.MICROSOFT_WORD对应docx格式,若需doc格式可使用MimeType.MICROSOFT_WORD_LEGACY。
内容的提问来源于stack exchange,提问作者Adam_N
相关产品推荐
相关产品推荐

