关于Google Script获取Google Doc带格式内容并发送邮件的咨询
解决Google Script发送带格式Google Doc内容的问题
嘿,我之前也踩过这个坑!你用getBody().getText()确实只能拿到纯文本,所有格式自然就丢了。要保留加粗、斜体这些格式,得换个方式获取文档内容,然后用HTML格式发送邮件。
核心思路
Google Doc可以直接导出为HTML格式,我们拿到这个HTML内容后,通过邮件的htmlBody参数发送,邮件客户端就会渲染出原文档的格式了。
具体代码实现
替换你原来的代码,改成这样:
// 获取文档的HTML格式内容(保留所有基础格式) var body_hw1_html = doc_hw1.getAs('text/html').getContentText(); // 发送带HTML格式的邮件 MailApp.sendEmail({ to: email, subject: subject_hw1, htmlBody: body_hw1_html, // 可选:给不支持HTML的邮件客户端提供纯文本 fallback body: doc_hw1.getBody().getText() });
注意事项
- 基础格式(加粗、斜体、段落换行、有序/无序列表)都能完美保留,但一些复杂样式比如自定义字体、特殊表格格式可能会有轻微差异,这是因为Google Doc转HTML的规则限制。
- 如果需要更精细的格式控制,比如调整邮件样式,你可以对获取到的HTML内容做二次处理,比如替换CSS样式或者标签,但一般场景下直接用
getAs('text/html')就足够了。
内容的提问来源于stack exchange,提问作者IWantToBeAnAnonymous
相关产品推荐
相关产品推荐

