我在google脚本中有这段代码,用于从模板创建带有表的电子邮件,但我必须用python编写相同的代码
我可以用什么替换“createTemplateFromFile”并用python中的循环创建我的表
代码.gs
var htmlTemplate = HtmlService.createTemplateFromFile("EmailTemplate");
const headers = ws.getRange("A1:L1").getDisplayValues();
htmlTemplate.Col_1 = headers[0][0];
htmlTemplate.Col_2 = headers[0][1]
...
htmlTemplate.Col_11 = headers[0][11]
htmlTemplate.Menssage = menssage
htmlTemplate.tableRangeValues = tableRangeValues
var htmlEmail = htmlTemplate.evaluate().getContent()
EmailTemplate.html
<tbody>
<? tableRangeValues.forEach(r => { ?>
<tr style="border-collapse:collapse; border:1px solid #000000" >
<td style="border-collapse:collapse; border:1px solid #000000" ><?= r[0] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[1] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[2] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[3] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[4] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[5] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[6] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[7] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[8] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[10] ?></td>
<td style="border-collapse:collapse; border:1px solid #000000"><?= r[11] ?></td>
</tr>
<?})?>
</tbody>
您可以使用模块jinja2将模板与
for
-loops、if/else
等一起使用jinja2
被Flask
用来生成HTML
,但是您可以使用它来生成任何字符串-HTML
、XML
、PDF
、CSS
、JS
、CSV
,等等在示例中,我使用
from_string()
,但您可以使用get_template()
从文件加载模板结果:
编辑:
还有其他
template engines
。见template engines关于Full Stack Python
Python也有标准的
string.Template
,或者可以使用string formatting
或f-string
,但不能在模板字符串中使用loops
、if/else
相关问题 更多 >
编程相关推荐