【发布时间】:2020-09-07 21:55:21
【问题描述】:
我有一个 google 表格,其中有两张表格,Form Responses 和 report: see here
当表单提交报告表时,最后一个表单或响应表的最后一行发生更改。 我想向提交表格的人发送电子邮件并将报告表附加为 PDF 发送电子邮件后,在 e 列中写入 已发送电子邮件: see here
电子邮件至:表单回复列 b 主题:一些文本和表单响应列 a 抄送:ABC@yahoo.com 正文:一些文本和表单响应列 f 附:PDF格式的报告表
我使用了这个代码,但它不起作用
function onSubmit(e){
Logger.log('submit ran');
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
var sa = sheet.getRange(lastRow, 1).getValue();
var sB = sheet.getRange(lastRow, 2).getValue();
var sf = sheet.getRange(lastRow, 6).getValue();
var ssID = SpreadsheetApp.getActiveSpreadsheet().getId();
var sheetgId = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getSheetId();
var email = Session.getUser().getEmail();
var subject = SB;
var body = Sf;
var url = "https://docs.google.com/spreadsheets/d/e/..............................................................=0&single=true&output=pdf";
var result = UrlFetchApp.fetch(url)
var contents = result.getContent();
if (emailSent !== "EMAIL_SENT") {
MailApp.sendEmail(email,subject ,body, {attachments:[{fileName:SB+".pdf", content:contents, mimeType:"application//pdf"}]});
sheet.getRange().setValue("EMAIL_SENT");
SpreadsheetApp.flush();
}
}
我从电子表格中获取网址>文件>发布到网络>以 pdf 格式发布报告选项卡
我重写了代码但得到错误“TypeError: report.getAs is not a function (line 36, file "Code")”
function onSubmit(e){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getAet();
var calculate = ss.getSheets()[2];
var Responses = ss.getSheets()[0];
var report = ss.getSheets()[1];
var sh = sheet.getRange(lastRow, 8).getValue();
var cell = calculate.getRange("b2");
cell.setFormula(sh);
SpreadsheetApp.flush();
var email = sB;
var subject =
var body = se;
var calculate = ss.getSheets()[2];
vafunction onSubmit(e){
Logger.log('submit ran');
var sheet = ss.getActiveSheet();
var calculate = ss.getSheets()[2];
var Responses = ss.getSheets()[0];
var report = ss.getSheets()[1];
var lastRow = Responses.getLastRow();
var sa = sheet.getRange(lastRow, 1).getValue();
var se = sheet.getRange(lastRow, 5).getValue();
v
cell.setFormula(sh);
SpreadsheetApp.flush();
var email = sB;
var body = se;
var calculate = ss.getSheets()[2];
var Responses = ss.getSheets()[0];
var pdf = report.getAs('application/pdf');
MailApp.sendEmail(email,subject ,body, {attachments:[pdf]});
sf.setvalue("EMAIL_SENT");
SpreadsheetApp.flush();
}
r Responses = ss.getSheets()[0];
var pdf = report.getAs('application/pdf');
MailApp.sendEmail(t ,body, {attachments:[pdf]});
sf.setvalue("EMAIL_SENT");
SpreadsheetApp.flush();
}
【问题讨论】:
-
您想将整个回复表作为 PDF 发送给用户,还是只发送在用户填写表单之前保存的回复?如果其他用户之后填写表格,每个用户都会收到第二封电子邮件吗?请发布您迄今为止尝试过的任何代码。
-
每个用户都应该输入代码(用户名)和密码,然后接收关于他或她的特定数据的电子邮件,并且对于下一个用户数据将更改并且电子邮件仅发送给该用户(不是全部)跨度>
标签: javascript email google-sheets spreadsheet email-attachments