Skip to content

Instantly share code, notes, and snippets.

@jrjames83
Created March 28, 2016 17:12
Show Gist options
  • Save jrjames83/d96995a974f0dd84e1aa to your computer and use it in GitHub Desktop.
Save jrjames83/d96995a974f0dd84e1aa to your computer and use it in GitHub Desktop.
function myFunction() {
//https://developers.google.com/apps-script/reference/mail/mail-app#sendemailmessage
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var charts = sheet.getCharts()[0];
var chart_image = charts.getAs("image/png").setName("hourly_chart")
var d = new Date();
var currentTime = d.toLocaleTimeString();
Logger.log(chart_image);
MailApp.sendEmail({
to: "xxx",
cc: "aaa, aaa, aaa, aaa",
subject: "Hourly Report Draft: " + currentTime,
htmlBody: "Hourly Data: <br> <img src='cid:chartImage'><br>",
inlineImages:
{
chartImage: chart_image
}
});
// getrange --> getvalues returns a nested array of strings
function flatten(data) {
var flattened = data.reduce(function(a, b) {
return a.concat(b);
}, []).map(function(val) {
return Math.round(parseFloat(val))
});
return flattened;
}
// Using Named Ranges
var last_week = flatten(SpreadsheetApp.getActiveSpreadsheet().getRangeByName('lastweek').getValues());
var last_year = flatten(SpreadsheetApp.getActiveSpreadsheet().getRangeByName('lastyear').getValues()); //.join(",\n")
var today = flatten(SpreadsheetApp.getActiveSpreadsheet().getRangeByName('today').getValues());
var yoy_diff = "Realtime YoY Report: \n YoY Difference: \n";
for (var i = 0; i < 24; i++) {
//Logger.log(today[i] - last_year[i]);
var diff = today[i] - last_year[i];
yoy_diff += "Hour: " + i + " $" + diff + "\n";
}
//Logger.log(yoy_diff);
// Slack Set-up stuff
var url = "https://hooks.slack.com/services/xxxxx/xxx/xxxx";
var payload = {
"text": yoy_diff
}
// Sent to slack
function sendToSlack_(url, payload) {
var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};
return UrlFetchApp.fetch(url, options)
}
// sendToSlack_(url, payload); // call func
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment