Last active
January 12, 2017 08:17
-
-
Save kotobuki/bf120aeae5e5e082d850ba866ccbbebe to your computer and use it in GitHub Desktop.
スプレッドシートに記入された値をチャートにして定期的にメールで送信する ref: http://qiita.com/mayfair/items/997bc2a950def4e32c02
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function onDailyTimeBasedTrigger(event) { | |
// 現在ブラウザで開いているシートを取得する | |
var sheet = SpreadsheetApp.getActiveSheet(); | |
// スクリプトのプロパティからメールの受信者を取得 | |
var scriptProperties = PropertiesService.getScriptProperties(); | |
var recipient = scriptProperties.getProperty('recipient'); | |
// トリガーを削除 | |
deleteTrigger(); | |
// データテーブルを作成 | |
var data = Charts.newDataTable(); | |
data.addColumn(Charts.ColumnType.STRING, 'Time'); | |
data.addColumn(Charts.ColumnType.NUMBER, 'Temperature'); | |
// アクティブなシートを取得する | |
var sheet = SpreadsheetApp.getActiveSheet(); | |
// ヘッダ行を除いて全ての値を取得し、データテーブルに追加する | |
var values = sheet.getRange(1, 1, sheet.getLastRow(), 2).getValues(); | |
for (var row in values) { | |
data.addRow([values[row][0], values[row][1]]); | |
} | |
// データテーブルをビルド | |
data.build(); | |
// チャートを生成してビルド | |
var chart = Charts.newLineChart() | |
.setDataTable(data) | |
.setTitle('本日のレポート') | |
.setDimensions(1024, 768) | |
.build(); | |
MailApp.sendEmail( | |
recipient, | |
'本日のレポート', | |
'本日のレポートです。', | |
{ attachments: chart }); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// トリガーをセット | |
function setTrigger() { | |
// 現在の時刻でDateオブジェクトを生成 | |
var timeofday = new Date(); | |
// トリガーを発生したい時、分、秒にセット | |
timeofday.setHours(17); | |
timeofday.setMinutes(00); | |
timeofday.setSeconds(00); | |
ScriptApp.newTrigger("sendDailyReport").timeBased().at(timeofday).create(); | |
} | |
// トリガーを削除 | |
function deleteTrigger() { | |
var triggers = ScriptApp.getProjectTriggers(); | |
for (var i in triggers) { | |
if (triggers[i].getHandlerFunction() == "sendDailyReport") { | |
ScriptApp.deleteTrigger(triggers[i]); | |
} | |
} | |
} | |
// 1日のレポートを送信 | |
function sendDailyReport() { | |
deleteTrigger(); | |
// レポート作成と送信の処理をここに | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment