为了账号安全,请及时绑定邮箱和手机立即绑定

如何从谷歌表格发送电子邮件,并将表格作为PDF附件

如何从谷歌表格发送电子邮件,并将表格作为PDF附件

jeck猫 2022-08-27 14:42:13
我有一个谷歌表格,有两个表格,表单响应和报告:见这里当表单提交报告表时,会随响应表的最后一个表单或最后一行而发生更改。我想向提交表单的人员发送电子邮件,并在发送电子邮件后将报告表附加为PDF,并在e列中写下已发送的电子邮件:请参阅此处电子邮件收件人:表单响应列 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();        }  }我从电子表格>文件>发布到 web>发布报告选项卡获取 pdf 格式的 url我重写了代码,但得到错误“TypeError:report.getAs不是一个函数(第36行,文件”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];
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

我建议您为此使用应用程序脚本。

作为表单和响应表的所有者,您可以创建绑定脚本,并使用 Gmail 和表单服务创建所需的 pdf,并将其发送给您的用户。

您还可以创建触发器来检查何时提交新响应。


查看完整回答
反对 回复 2022-08-27
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

我挖出了一个旧的例子,并使用getAs()发送一个文档,所以如果你只想要一个工作表,你只需创建一个新的电子表格,其中包含你确实想要发送的信息。

var newSheet = SpreadsheetApp.create(Title,y,x);

在其中设置所需的任何值,然后

var pdf = newSheet.getAs('application/pdf');
MailApp.sendEmail(email, subject, body, {attachments:[pdf]} );

我建议创建一个新的电子表格,因为你不能只将一个选项卡转换为PDF。


查看完整回答
反对 回复 2022-08-27
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信