我有一个谷歌表格,有两个表格,表单响应和报告:见这里当表单提交报告表时,会随响应表的最后一个表单或最后一行而发生更改。我想向提交表单的人员发送电子邮件,并在发送电子邮件后将报告表附加为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,并将其发送给您的用户。
您还可以创建触发器来检查何时提交新响应。
慕丝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。
添加回答
举报
0/150
提交
取消