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

如何在Google Apps Script的HTML邮件中换行展示Google Sheets列表?

问题描述

使用Google Apps Script发送自动化邮件时,通过Google Sheets中TEXTJOIN+CHAR(10)生成的换行列表,在HTML邮件中显示为连续文本,需要改成逐行展示。


解决方案

方法1:替换换行符为HTML换行标签

在脚本中将表格文本里的换行符(\n)替换为HTML的<br>标签,让邮件识别换行。

修改后的Apps Script代码:

function trial() {
  var name1 = 0;
  var email = 1;

  var emailTemp = HtmlService.createTemplateFromFile("htmlcode");

  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  
  var data = ws.getRange("G2:H" + ws.getLastRow()).getValues();

  data.forEach(function(row){
    // 替换换行符为HTML换行标签
    emailTemp.level2names = row[name1].replace(/\n/g, '<br>');    
    
    var htmlMessage = emailTemp.evaluate().getContent();
    GmailApp.sendEmail(
      row[email],
      "测试输出!",
      "你的邮箱不支持HTML格式",
      {name: "Vish", htmlBody: htmlMessage}
    );
  });
}

HTML模板无需修改,原有代码即可生效。


方法2:生成HTML无序列表(推荐)

如果需要带项目符号的列表样式,可将文本按换行分割后生成<ul>列表,更符合预期输出的视觉效果。

修改后的Apps Script代码:

function trial() {
  var name1 = 0;
  var email = 1;

  var emailTemp = HtmlService.createTemplateFromFile("htmlcode");

  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  
  var data = ws.getRange("G2:H" + ws.getLastRow()).getValues();

  data.forEach(function(row){
    // 分割文本并生成列表项
    var namesList = row[name1].split('\n').map(name => `<li>${name}</li>`).join('');
    emailTemp.level2names = `<ul>${namesList}</ul>`;    
    
    var htmlMessage = emailTemp.evaluate().getContent();
    GmailApp.sendEmail(
      row[email],
      "测试输出!",
      "你的邮箱不支持HTML格式",
      {name: "Vish", htmlBody: htmlMessage}
    );
  });
}

对应的HTML模板可简化为:

<table border="1" cellpadding="1" cellspacing="1" style="width:500px">
    <tbody>
        <tr>
            <td>
            <p>以下是G列的人员列表</p>

            <?= level2names?>

            <p>&nbsp;</p>
            </td>
        </tr>
    </tbody>
</table>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:35:51