如何使用电子表格中的 table 填充 HTML table?

How do I populate an HTML table using a table from a spreadsheet?

所以我有一个简单的 4 列 table,其中包含将由函数添加的行。我想创建 html 正文,其中包含 table 并使用 google 脚本每周通过电子邮件发送 3 次。我能够将数据从电子表格中取出并放入变量中。问题是我不能把它变成一个该死的 table,我知道这可能是一个简单的解决方案,但我对 google 脚本还很陌生。这是我的脚本;

function emailsLeanKitchen() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var Sheet = ss.getSheetByName("Sheet1");
   var dataTable = Sheet.getRange(1,1,Sheet.getLastRow(),4).getValues();
  Logger.log(dataTable);
  GmailApp.sendEmail("my email","subject", dataTable);//
}

如果有人知道在计时器上设置此脚本的好方法,那也很棒,因为那是我的下一个目标。我已将 link 附加到我的电子表格。感谢您的帮助!
https://docs.google.com/spreadsheets/d/1X_UcqyXXRMyjZ2j46TymMrIMWvt19HOZTTaEUlIVqwE/edit?usp=sharing

  1. 您想根据从活动电子表格中检索到的值创建一个 HTML table,并希望使用 Google Apps 脚本将其作为 HTML 正文发送.
  2. 您想 运行 脚本由时间驱动触发器。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。

第 1 题的答案:

当你的脚本修改后,变成如下。

修改后的脚本:

从:
GmailApp.sendEmail("my email","subject", dataTable);//
到:
var htmlTable = dataTable.reduce(function(s, e) {
  return s += "<tr><th>" + e.join("</th><th>") + "</th></tr>"
}, "<table border=\"1\">") + "</table>";
GmailApp.sendEmail("my email","subject", "sample text body", {htmlBody: htmlTable});
  • 在这种情况下,htmlTable 作为 HTML 正文发送。 "sample text body" 作为正文发送。在这种情况下,当邮件程序无法读取 HTML 正文时,将显示正文。

问题 2 的答案:

您可以 运行 函数 emailsLeanKitchen() 与时间驱动的事件触发器。您可以在 here 查看如何设置触发器。在这种情况下,根据你的问题 3 times per week,"Week timer" 可能是 "Select type of time based trigger" 的 suitable。关于这个,请根据您的实际情况设置。

参考文献:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。