如何解决循环到带有Google脚本和HTML模板的项目符号点
我正面临的问题:
我有一个包含单元格的电子表格,该单元格将填充通过Google Apps脚本发送电子邮件的HTML模板。这些单元格链接到HTML模板中的项目符号列表,根据这些单元格中是否包含信息,我希望其长度在1-6个项目符号之间。我目前正在努力寻找一种方法来循环这些单元,而在最终电子邮件中不包含空白的项目符号。
我已经研究了各种类似的方法,但是没有什么办法能够完全满足我脚本中必要的循环和项目符号的需要。
以下是一些相关代码:
template.tweb = web.getRange(1,1).getValue();
template.tweb1 = web.getRange(2,1).getValue();
template.tweb2 = web.getRange(3,1).getValue();
template.tweb3 = web.getRange(4,1).getValue();
template.tweb4 = web.getRange(5,1).getValue();
template.tweb5 = web.getRange(6,1).getValue();
我目前没有循环设置它,因为我无法获得比最后一行更多的内容来填充HTML模板。
这是HTML代码:
<p><strong>Website Development</strong></p>
<em>Weekly Highlights</em>
<br>
<ul>
<li>The Website Development team completed the following:</li>
<ul><li> <?= tweb ?></li></ul>
<ul><li> <?= tweb1 ?></li></ul>
<ul><li> <?= tweb2 ?></li></ul>
<ul><li> <?= tweb3 ?></li></ul>
<ul><li> <?= tweb4 ?></li></ul>
<ul><li> <?= tweb5 ?></li></ul>
此外,这是我失败的循环代码的示例:
var e = pr.getLastRow();
for (var i = 1; i < e+1 ; i++ ) {
var tpr = pr.getRange(i,1).getValue();
}
template.tpr = tpr;
<p><strong>Public Relations</strong></p>
<em>Weekly Highlights</em>
<ul>
<li><?= tpr ?></li>
</ul>
谢谢您的帮助!
解决方法
您的最佳选择是使用Apps Script scriptlets
它们允许您动态创建html,并将循环和语句与html代码集成。
示例:
Code.gs
function doGet() {
var template = HtmlService.createTemplateFromFile("index");
return template.evaluate();
}
function getData() {
var web = SpreadsheetApp.getActive().getActiveSheet();
return web.getRange(1,1,6,1).getValues();
}
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<p><strong>Website Development</strong></p>
<em>Weekly Highlights</em>
<br>
<ul>
<li>The Website Development team completed the following:</li>
<? var data = getData(); ?>
<? for (var i = 0; i < data.length; i++) { ?>
<? if (data[i][0]!="" && data[i][0]!=" ") { ?>
<ul><li> <?= data[i][0] ?></li></ul>
<? } ?>
<? } ?>
</ul>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。