Google apps script 如何通过电子邮件发送工作表的特定部分?
当我在单元格L6中键入Send时,这个脚本会向我的电子邮件发送一份pdf副本,这段代码会发送整个表单,我只需要发送A1:J22,有什么想法吗Google apps script 如何通过电子邮件发送工作表的特定部分?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,当我在单元格L6中键入Send时,这个脚本会向我的电子邮件发送一份pdf副本,这段代码会发送整个表单,我只需要发送A1:J22,有什么想法吗 function onEdit2(e) { var sheet = SpreadsheetApp.getActiveSheet(); var r = sheet.getRange('L6').getValue(); if (r == "Send") { var ss = SpreadsheetApp.getActiveSpreadsh
function onEdit2(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var r = sheet.getRange('L6').getValue();
if (r == "Send") {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var ssID = ss.getId();
var sheetgId = ss.getActiveSheet().getSheetId();
var sheetName = ss.getName();
var token = ScriptApp.getOAuthToken();
var email = "EMAIL HERE";
var subject = "Daily report ";
var body = "Please find the attached Daily report";
var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?"
+ "format=xlsx" + "&gid="+sheetgId+ "&portrait=true" +
"&exportFormat=pdf";
var result = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var contents = result.getContent();
MailApp.sendEmail(email,subject ,body, {
attachments: [{
fileName: sheetName + ".pdf",
content: contents,
mimeType: "application//pdf"
}]
})
}
}
- 您希望检索
的单元格并将其创建为PDF数据A1:J22
- 您希望使用谷歌应用程序脚本实现这一点
- 在此修改中,创建一个时间表,并将
单元格的值复制到该时间表中。然后,将时间表转换为PDF文件。并且,删除时间表A1:J22
function onEdit2(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var r = sheet.getRange('L6').getValue();
if (r == "Send") {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var ssID = ss.getId();
var sheet = ss.getActiveSheet(); // Added
// var sheetgId = ss.getActiveSheet().getSheetId(); // removed
var sheetName = ss.getName();
var token = ScriptApp.getOAuthToken();
var email = "EMAIL HERE";
var subject = "Daily report ";
var body = "Please find the attached Daily report";
var tempSheet = ss.insertSheet("tempSheet"); // Added
sheet.getRange("A1:J22").copyTo(tempSheet.getRange(1, 1)); // Added
SpreadsheetApp.flush(); // Added
var sheetgId = tempSheet.getSheetId(); // Added
var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export?" + "format=xlsx" + "&gid="+sheetgId+ "&portrait=true" + "&exportFormat=pdf";
var result = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' + token}});
var contents = result.getContent();
MailApp.sendEmail(email,subject ,body, {attachments: [{fileName: sheetName + ".pdf", content: contents, mimeType: "application//pdf"}]});
ss.deleteSheet(tempSheet); // Added
}
}
参考资料:
如果我误解了你的问题,而这不是你想要的方向,我道歉。它工作得很好!开箱思考,谢谢塔奈克。@Aboude zoua谢谢你的回答。我很高兴你的问题解决了。