You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Script新手求助:如何实现邮件发送docx格式附件?

解决Google Script发送DOCX格式附件的问题

嘿,作为Google Script初学者遇到这种格式转换的问题太正常啦,完全不用不好意思~之前那种直接拼URL的旧方法确实已经失效了,Google更新了相关的API接口,现在用官方的Advanced Drive Service来导出DOCX才是稳妥的方案,我来一步步教你怎么做:

第一步:启用Advanced Drive Service

在你的脚本编辑器里,点击顶部菜单栏的「服务」→「添加服务」,找到「Drive API」并添加它。这一步是让脚本能调用官方的Drive导出接口,比旧的URL方法靠谱多了。

第二步:修改你的代码,同时生成PDF和DOCX附件

你原来生成PDF的代码可以保留,然后加上DOCX的生成逻辑,完整示例如下:

// 替换成你的文件ID
var copyId = "你的文件ID";

// 获取目标文件
var targetFile = DriveApp.getFileById(copyId);
var fileName = targetFile.getName();

// 生成PDF格式的Blob
var pdfBlob = targetFile.getAs("application/pdf");
pdfBlob.setName(fileName + ".pdf");

// 用Drive API导出DOCX格式的Blob
var docxContent = Drive.Files.export(copyId, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
var docxBlob = Utilities.newBlob(docxContent, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", fileName + ".docx");

// 发送邮件,同时添加两个附件
MailApp.sendEmail({
  to: "收件人邮箱@example.com",
  subject: "包含PDF和DOCX的文件附件",
  body: "这是你需要的两份格式的文件~",
  attachments: [pdfBlob, docxBlob]
});

补充说明

如果你的文件本身就是已经上传到Drive的DOCX文件(不是Google原生文档),那更简单,直接用getFileById(copyId).getBlob()就能获取到DOCX的Blob,不用走导出流程~

之前那种拼接URL的旧方法失效,是因为它依赖的是Google Docs未公开的导出接口,后来Google做了权限限制和接口更新,所以旧代码就没法用了。而我们现在用的Drive.Files.export是官方公开的API,只要启用了Advanced Drive Service就可以稳定使用。

内容的提问来源于stack exchange,提问作者Edward Evans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:02:43