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

如何用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:35:25