Skip to content

Instantly share code, notes, and snippets.

@u0401006
Last active April 30, 2020 06:22
Show Gist options
  • Save u0401006/c9ad0eabf15f954f9f34706af1a03707 to your computer and use it in GitHub Desktop.
Save u0401006/c9ad0eabf15f954f9f34706af1a03707 to your computer and use it in GitHub Desktop.
function onOpen() {
// onOpen是讓Spreadsheet開啟時就要採取這個動作的函式
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name : "寄出pdf", functionName : "send"},
{name: "重新取得前三流量來源", functionName: "getPv"},
];
sheet.addMenu("特別功能", menu); // 新增一個叫做「特別功能」的下拉選單,裡面有寄出與取得來源兩個功能
};
function send() {
// 為求保險,要執行寄信前先跳出小視窗double check
var confirm = Browser.msgBox('確定要發送?', Browser.Buttons.OK_CANCEL);
if(confirm=='ok')
{
var ss = SpreadsheetApp.getActiveSpreadsheet(); //進入目前這個spreadsheet工作簿
var sheet= ss.getSheetByName("主網站一週流量報告"); //以頁籤名進入工作表
var period = sheet.getRange("A1").getValues(); //在工作表的A1埋了日期區間
// 編輯主旨跟內文,Ex.0115-0121網站流量報表
var subject = period + "網站流量報表(中、英、日) ";
var message = "各位好:\n"+ subject + "如附件\n敬請參考\n\n數位新聞中心";
// 取得寄件者
var contacts = ss.getSheetByName("member"); // 進入member工作表
var numRows = contacts.getLastRow(); // 取得member list範圍
var emailTo = contacts.getRange(2, 1, numRows, 1).getValues(); // 取得member email
// 把spreadsheet內容化成pdf
var pdfFile = DriveApp.getFileById(ss.getId()); // 從Drive的層級取得pdf檔號
var pdf = pdfFile.getAs('application/pdf').getBytes(); // 以pdf形式取得檔案,並轉成Blob格式
var rename = subject + ".pdf"; // 給pdf一個人看的名字
var attach = {fileName: rename ,content:pdf, mimeType:'application/pdf'}; // 附加檔案
MailApp.sendEmail(emailTo, subject, message, {attachments:[attach]}); // 送出email
}
else{}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment