###◆やること
- スプレッドシートから値取得
- gasでテーブル形式のhtmlにする
- htmlメール送信
以下コード
###◆コード
コード.js
function myFunction() {
//値取得、二次元配列格納
let vals = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getDataRange().getValues();
//ここでforを使ってval⇒htmlのtable形式に
//オプションでHTMLメール本文を設定する
let mailText = "htmlを入れた変数";
let options = {"htmlBody":mailText,};
//GmailApp.sendEmail(メールアドレス,メール表題,本文(htmlメール送信できないとき表示),htmlメールを設定({htmlBody:html本文})
GmailApp.sendEmail("メールアドレス","メール表題", mailText , options);
}
上記のforの中身を書くとしたら、下記の感じです。
コード.js
let tbl = "<table border='1' style='border-collapse: collapse;'><tr><th>ヘッダー1</th><th>ヘッダー2</th><th>ヘッダー3</th><th>ヘッダー4</th><th>ヘッダー25</th><th>ヘッダー6</th></tr>";
//ここでは最後</table>でしめません。forでtrを追加して、一番最後に<table>を追加します。
let newtd ="";
vals.forEach(x=>{ //二次元配列valsから一つずつ配列取り出し
for(let elnum in x){ //取り出した一次元配列から一つずつ要素取り出し
newtd += "<td>"+x[elnum]+"</td>";
}
let tr = "<tr>"+newtd+"</tr>"
tbl += tr; tr
newtd="";
})
let mailText = tbl+"</table>"//ここでtableを閉じます。
自分は、あとは送信先アドレス一覧を別シートで用意して、
アドレス一覧取得、GmailApp.sendEmail("メールアドレス","件名", "本文" ,);
のアドレスに入れました。
あと、引っ張ってくる一覧をクエリ関数で作成、GASで日付書き換えて関数で内容変更⇒トリガーで定時に集計メールが届くようにしました。
###◆完成品(ほぼモザイクですいません)
###◆その他
#####スプシにメアド書いて、それに送る
下記が参考になります。
【GAS】スプレッドシートからメールを送信する方法
#####ほかのhtmlファイルからテンプレート持ってくる
下記が参考になります。
Google Apps ScriptでGmailからHTMLメールを送信する方法
####感想
これぞ自動化という感じです。