如何用Google Sheets数据填充HTML通讯邮件模板?求示例与方案指引
用Google Sheets数据自动填充HTML邮件模板的实现方案
当然可以实现,最适配你需求的方案是使用Google Apps Script——这是Google生态原生的自动化工具,无需额外第三方服务,直接在你的Google Sheets内完成数据读取、模板填充甚至邮件发送的全流程,完美替代手动复制粘贴的工作。
具体实现步骤
1. 前置准备
- 整理Sheet数据:确保数据有清晰的表头(比如
姓名、邮箱、订单号、金额),后续模板里的占位符会和这些表头对应。 - 准备HTML模板:将现有模板保存为Google Drive里的
.html文件,或者直接把模板字符串写在脚本里(适合短模板)。模板里需要替换的内容用{{表头名称}}作为占位符,比如{{姓名}}、{{订单号}}。
2. 编写Apps Script代码
打开你的Google Sheets,点击「扩展程序」->「Apps Script」,在脚本编辑器里粘贴以下示例代码,根据实际情况修改:
function autoFillHtmlTemplate() { // 1. 读取Sheet数据 const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sheet = spreadsheet.getSheetByName("Sheet1"); // 替换成你的工作表名称 const allData = sheet.getDataRange().getValues(); const headers = allData[0]; // 获取表头行 const dataRows = allData.slice(1); // 跳过表头,获取所有数据行 // 2. 读取HTML模板(二选一即可) // 方式一:从Google Drive读取模板文件 const templateFile = DriveApp.getFilesByName("邮件模板.html").next(); // 替换成你的模板文件名 let htmlTemplate = templateFile.getBlob().getDataAsString(); // 方式二:直接在脚本内定义模板字符串(适合短模板) // let htmlTemplate = ` // <!DOCTYPE html> // <html> // <head> // <meta charset="UTF-8"> // <title>订单通知</title> // </head> // <body> // <div style="padding: 20px; border: 1px solid #eee;"> // <h2>尊敬的{{姓名}}:</h2> // <p>您的订单 <strong>{{订单号}}</strong> 已完成处理,应付金额为 <span style="color: red;">{{金额}}元</span>。</p> // <p>如有疑问请联系客服。</p> // </div> // </body> // </html> // `; // 3. 遍历数据,填充模板并执行后续操作 dataRows.forEach(row => { let filledHtml = htmlTemplate; // 逐个替换占位符 headers.forEach((header, index) => { const placeholder = `{{${header}}}`; // 使用全局正则替换,确保模板中多次出现的占位符都被替换 filledHtml = filledHtml.replace(new RegExp(placeholder, 'g'), row[index]); }); // 选项1:发送填充后的HTML邮件 const emailColumnIndex = headers.indexOf("邮箱"); // 替换成你的邮箱列表头名称 if (emailColumnIndex !== -1 && row[emailColumnIndex]) { MailApp.sendEmail({ to: row[emailColumnIndex], subject: `您的订单通知(订单号:${row[headers.indexOf("订单号")]})`, // 自定义邮件主题 htmlBody: filledHtml }); } // 选项2:保存填充后的HTML文件到Drive(可选) // const orderNumber = row[headers.indexOf("订单号")]; // DriveApp.createFile(`订单通知_${orderNumber}.html`, filledHtml, MimeType.HTML); }); }
3. 配置触发方式
- 手动触发:在脚本编辑器点击运行按钮,或者给Sheet添加自定义菜单(可参考Apps Script官方文档实现),方便日常手动执行。
- 定时自动触发:在脚本编辑器点击「编辑」->「当前项目的触发器」,添加时间驱动触发器,比如设置为每天固定时间执行,彻底解放双手。
关键注意事项
- 占位符要严格对应:确保模板里的
{{表头名}}和Sheet的表头完全一致,包括大小写。 - 权限授权:第一次运行脚本时会要求授权,按照提示完成Google账号的权限验证即可。
- 邮件发送限额:普通Google账号每日邮件发送限额为100封,G Suite/Workspace账号限额更高,根据需求调整。
- 模板兼容性:如果HTML模板有复杂样式,尽量使用内联CSS(邮件客户端对外部CSS支持有限),避免替换占位符时破坏HTML结构。
内容的提问来源于stack exchange,提问作者ZeusDev
相关产品推荐
相关产品推荐

