【发布时间】:2020-11-29 15:48:26
【问题描述】:
我目前有一个脚本,它将获取特定表格并将其作为 PDF 发送到单元格 C8 上的电子邮件地址,此单元格当前通过在下拉列表中选择一个名称来填充,因为我们使用它来发送收据,有没有办法遍历脚本并发送带有各自副本的自动电子邮件?我已经尝试过for 声明,但到目前为止还没有运气。在我的代码(运行良好,但仅适用于单个电子邮件)和电子表格示例下方。关于如何实现这一点的任何想法?
function emailSpreadsheetAsPDF() {
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PDF").getRange("C8");
var email = emailRange.getValues();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("PDF"); // Enter the name of the sheet here
var subject = "Test Receipt ";
var body = "\n Please see attached your current test receipt: ";
// Base URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=letter' // paper size legal / letter / A4
+ '&portrait=true' // orientation, false for landscape
+ '&fitw=true&source=labnol' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers : {
'Authorization' : 'Bearer ' + token
}
}).getBlob().setName(sheet.getName() + ".pdf");
// Uncomment the line below to save the PDF to the root of your drive.
// var newFile = DriveApp.createFile(response).setName(sheet.getName() + ".pdf")
if (MailApp.getRemainingDailyQuota() > 0)
GmailApp.sendEmail(email, subject, body, {
htmlBody : body,
attachments : [response]
});
}
https://docs.google.com/spreadsheets/d/1p4p9A9z8-EqlFGnlJ1o360gA8lcp-L29iuIPNylC4e8/edit?usp=sharing
【问题讨论】:
标签: google-apps-script google-sheets gmail-api mailmerge