![](/img/trans.png)
[英]Send Only Active Sheet as PDF Attachment through GMail in Google Sheet
[英]How to send email from google sheet with the sheet as a PDF attachment
我有一個谷歌表,有兩張表,表單響應和報告:見這里
當表單提交報告表時,會使用響應表的最后一個表單或最后一行更改。 I want to send an email to the person who submits the form and attach the report sheet as PDF after sending email write sent email in column e: see here
email 至:表單響應列 b 主題:一些文本和表單響應列 a 抄送:ABC@yahoo.com 正文:一些文本和表單響應列 f 附加:報告表為 ZBCD1B68617759B1DFCFF0403
我使用了這段代碼,但它不起作用
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();
}
}
我從電子表格>文件>發布到網絡>發布報告選項卡中獲得 url 作為 pdf
我重寫代碼但得到錯誤“ TypeError:report.getAs is not a function(第 36 行,文件“代碼”) “
function onSubmit(e){
Logger.log('submit ran');
var ss = SpreadsheetApp.getActiveSpreadsheet();
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 sB = sheet.getRange(lastRow, 2).getValue();
var se = sheet.getRange(lastRow, 5).getValue();
var sf = sheet.getRange(lastRow, 6).getValue();
var sh = sheet.getRange(lastRow, 8).getValue();
var cell = calculate.getRange("b2");
cell.setFormula(sh);
SpreadsheetApp.flush();
var email = sB;
var subject = "راید ریپورت "+sa;
var body = se;
var calculate = ss.getSheets()[2];
vafunction onSubmit(e){
Logger.log('submit ran');
var ss = SpreadsheetApp.getActiveSpreadsheet();
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 sB = sheet.getRange(lastRow, 2).getValue();
var se = sheet.getRange(lastRow, 5).getValue();
var sf = sheet.getRange(lastRow, 6).getValue();
var sh = sheet.getRange(lastRow, 8).getValue();
var cell = calculate.getRange("b2");
cell.setFormula(sh);
SpreadsheetApp.flush();
var email = sB;
var subject = "راید ریپورت "+sa;
var body = se;
var calculate = ss.getSheets()[2];
var Responses = ss.getSheets()[0];
var report = ss.getSheets()[1];
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 report = ss.getSheets()[1];
var pdf = report.getAs('application/pdf');
MailApp.sendEmail(email,subject ,body, {attachments:[pdf]});
sf.setvalue("EMAIL_SENT");
SpreadsheetApp.flush();
}
我建議您為此使用 Apps 腳本。
您作為表單和響應表的所有者,可以創建一個綁定腳本並使用 Gmail 和 Forms 服務來創建您想要的 pdf,並將其發送給您的用戶。
您還可以創建觸發器來檢查何時提交新響應。
參考:
我挖出了一個舊示例並使用 getAs() 發送文檔,因此如果您只想要一張表,您只需創建一個包含您想要發送的信息的新電子表格。
var newSheet = SpreadsheetApp.create(Title,y,x);
設置你想要的任何值,然后
var pdf = newSheet.getAs('application/pdf');
MailApp.sendEmail(email, subject, body, {attachments:[pdf]} );
我建議創建一個新的電子表格,因為您不能只將一個選項卡轉換為 PDF。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.