首页 > 解决方案 > 来自 Gsheet 的 html 文件中的 Google Apps 脚本动态项目符号列表

问题描述

我想在一个带有变量的谷歌应用脚​​本的 html 文件中创建一个动态项目符号列表。为此,我想得到一些帮助,因为我对此很陌生。此时将电子邮件作为固定的 op[x] 变量发送,因此如果它们为空,我将有空的项目符号列表。

我有一个调用函数luli 我在数组调用操作中有变量,期望成为项目符号列表实际上我还创建了它们总和的可数变量

luligs

function luli() {
  var emailTemp = HtmlService.createTemplateFromFile('INTERVENTION-EMAIL');
  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Template Creation');
  // for bulleted list
  var operation = ws.getRange('B27:B32').getValues();
  var i = ws.getRange('$B$33').getValue();
  // used at the moment
  var op1 = wsSettings.getRange('$B$27').getValue();
  var op2 = wsSettings.getRange('$B$28').getValue();
  var op3 = wsSettings.getRange('$B$29').getValue();
  var op4 = wsSettings.getRange('$B$30').getValue();

  //email variables used at the moment
  emailTemp.op1 = op1;
  emailTemp.op2 = op2;
  emailTemp.op3 = op3;
  emailTemp.op4 = op4;

  var htmlMessage = emailTemp.evaluate().getContent();

  GmailApp.createDraft(
    mail,
    sujet,

    //send  message generated htmlbody & htmlmessage built.
    { name: nom, htmlBody: htmlMessage, cc: cc, from: from },
  );
}

我有一个名为intervention-email的电子邮件模板

干预-email.html

<p dir="ltr">
  <span style="font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif"
    ><?= corps1 ?></span
  >
</p>
<ul style="list-style-type: square">
  <li dir="ltr">
    <span
      style="
        font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
        font-size: 10pt;
      "
      ><?= op1 ?></span
    >
  </li>
  <li dir="ltr">
    <span
      style="
        font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
        font-size: 10pt;
      "
      ><?= op2 ?></span
    >
  </li>
  <li dir="ltr">
    <span
      style="
        font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
        font-size: 10pt;
      "
      ><?= op3 ?></span
    >
  </li>
  <li dir="ltr">
    <span
      style="
        font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
        font-size: 10pt;
      "
      ><?= op4 ?></span
    >
  </li>
</ul>
<p>&nbsp;</p>

最好有一个代码根据操作变量中包含的信息生成 li 项目符号列表,然后填充电子邮件列表。谢谢您的帮助。

标签: javascripthtmlvariablesgoogle-apps-scriptbulletedlist

解决方案


您可以将变量推送到数组中(或直接将它们作为数组检索),然后将数组传递给模板

样本

代码.gs

...
var values = wsSettings.getRange('B27:B30').getValues().flat();
emailTemp.options = values;
var htmlMessage = emailTemp.evaluate().getContent();
...

干预-email.html

...
<ul style="list-style-type: square">
<? for (var i = 0; i < options.length; i++) { ?>
  <li dir="ltr">
    <span style="font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif; font-size: 10pt;">
      <?= options[i] ?>
    </span>
  </li>
<? } ?>
</ul>
...

请参阅文档


推荐阅读