![](/img/trans.png)
[英]How to keep an email log of users who accessed a certain spreadsheet with Google Apps Script?
[英]How to I email a certain part of a spreadsheet as PDF in google apps script?
我想知道是否可以指定工作表的某個部分以 pdf 格式通過電子郵件發送。 在這里,我有一些通過電子郵件發送整個工作表的代碼(即 Sheet3 或 Sheet 2 ....)有沒有辦法僅通過電子郵件將某個范圍作為 pdf 發送(單元格 A1:J13 轉換為 pdf,但該范圍之外的所有內容都會得到遺漏)?
//This is a modified version of the code to keep personal data out. Sorry if some varriables
//are missing
function sendReport() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet3')
var AgentEmail = sh.getRange("B5").getValue();
let token = ScriptApp.getOAuthToken();
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let spreadsheetId = spreadsheet.getId();
let sheetId = spreadsheet.getSheetByName("Sheet3").getSheetId();
let sheetUrl = "https://docs.google.com/spreadsheets/d/" + spreadsheetId + "/export?" + "format=xlsx" + "&gid=" + sheetId + "&portrait=true" + "&exportFormat=pdf";
let request = UrlFetchApp.fetch(sheetUrl, {
headers: {
'Authorization': 'Bearer ' + token
}
});
let content = request.getContent();
let message = {
to:Agentemail, cc:email1, email2, email3,
subject: "Subject",
attachments: [{
fileName: "Filename",
content: content,
mimeType: "application/pdf"
}]
}
MailApp.sendEmail(message);
spreadsheet.getSheetByName("Sheet3").activate();
}
我會提出一個腳本來復制工作表,從副本中刪除所有不需要的行和列,然后調用函數發送 PDF,並刪除臨時工作表:
function main() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Sheet1');
var temp_sh = sh.copyTo(ss); // make a duplicate
temp_sh.deleteColumns(11,sh.getLastColumn()); // remove columns
temp_sh.deleteRows(14,sh.getLastRow()); // remove rows
sendReport(temp_sh); // send PDF
ss.deleteSheet(temp_sh); // delete the duplicate
}
function sendReport(sh) {
var AgentEmail = sh.getRange("B5").getValue();
let token = ScriptApp.getOAuthToken();
let spreadsheet = sh.getParent();
let spreadsheetId = spreadsheet.getId();
let sheetId = sh.getSheetId();
let sheetUrl = "https://docs.google.com/spreadsheets/d/" + spreadsheetId
+ "/export?" + "format=xlsx" + "&gid=" + sheetId
+ "&portrait=true" + "&exportFormat=pdf";
let request = UrlFetchApp.fetch(sheetUrl, {
headers: { 'Authorization': 'Bearer ' + token }
});
let content = request.getContent();
let message = {
to: Agentemail, cc: email1, email2, email3,
subject: "Subject",
attachments: [{
fileName: "Filename",
content: content,
mimeType: "application/pdf"
}]
}
MailApp.sendEmail(message);
// sh.activate();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.