Google 来自 Gsheet 的 html 文件中的 Apps 脚本动态项目符号列表

Google Apps Script dynamically bulleted list in an html file from Gsheet

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

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

luli.gs

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').getValue();
  // used at the moment
  var op1 = wsSettings.getRange('$B').getValue();
  var op2 = wsSettings.getRange('$B').getValue();
  var op3 = wsSettings.getRange('$B').getValue();
  var op4 = wsSettings.getRange('$B').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 项目符号列表,然后填充电子邮件列表。 感谢您的帮助。

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

示例

Code.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>
...

documentation