【发布时间】:2019-02-21 23:43:37
【问题描述】:
我正在尝试从电子表格中获取数据,将其作为列表放入 html 模板中,以电子邮件的形式发送,然后以 pdf 的形式附加。在电子邮件中显示 html 时,我被挂断了。
代码.gs
function sendFormByEmail() {
var htmlBody = HtmlService.createTemplateFromFile('formtemplate');
var responses = SpreadsheetApp.getActiveSheet();
var width = responses.getLastColumn();
var headers = responses.getRange( 1, 1, 1, width ).getValues()[0];
var data = responses.getRange( responses.getLastRow(), 1, 1, width ).getValues()[0];
htmlBody.width = width;
htmlBody.headers = headers;
htmlBody.data = data;
var subject = "Form Submission" ;
// Email addresses
var test = "email@gmail.com";
var to = test;
// Grab template with data
var html = htmlBody.evaluate().getContent();
Logger.log(html);
// Convert HTML to PDF
var blob = Utilities.newBlob(html, "text/html", "text.html");
var pdf = blob.getAs("application/pdf");
// Send email and attachment
MailApp.sendEmail( to, subject, '', {htmlBody: html, attachments: pdf});
};
formtemplate.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<ul>
<?
// Loop through spreadsheet responses
for (var i = 0; i < width; i++) { ?>
<li><strong><? headers[i] ?></strong>: <? data[i] ?>
<? }
?>
</ul>
</body>
</html>
我尝试过调试,所有值都出现在 html 模板中,但是当我检查 Code.gs 中的 html 变量时,我得到了空的 html 列表。包含在生成的 html 电子邮件中。知道我哪里出错了吗?我的开发人员知识相当低,我通过在线阅读和查看脚本拼凑起来。任何帮助将不胜感激。
【问题讨论】:
标签: html google-apps-script web-applications