見出し画像

スプレッドシートを表のままメールで送信する【GAS】【Googleスプレッドシート】

前回の記事の続きです。HTMLで本文を作成し、テキストをスプレッドシートの項目から差込み・個別化できるようにしました。

今回は続きです。
スプレッドシートのリンクが送られてくるけど、「いちいちログインするのが面倒で、メールで表が見たい」というときもあるのではないでしょうか。
スプレッドシートの範囲が広すぎて、見てほしいところにたどり着かないとか、変更される前の記録を残したいとか、切り取りです。

HTMLメールの構文

function mailHTML2 ( ) {

  var body=  "<H1>Hello HTML!!</H1><br><strong>Hello HTML!!</strong>"
            
   GmailApp.sendEmail( ' aaa@bbb.com ' , 'タイトル', body,  { htmlBody:body}  );
}

HTMLでの表現は、
GmailApp.sendEmail( ' 〇〇 ' , ' 〇〇 ' , body , { htmlBody:body} ); }
「body」を二か所に反映させる構文でした。
構文はこのままで、「body」の中身を表にしていきます。

HTMLで表を作成する

function mailHTML_hyou1 ( ) { //表を送信
 
  var body=  "<table><tr><td>ああ</td><td>いい</td></tr><tr><td>うう</td><td>ええ</td></tr></table>"

  GmailApp.sendEmail( ' aaa@bbb.com ' , 'タイトル', body,  { htmlBody:body}  );
}

var body= "<table><tr><td>ああ</td><td>いい</td> </tr><tr><td>うう</td><td>ええ</td></tr></table>"
チカチカしますけど、表にするためのHTML構文です。
<table><tr><td>の3つのタグが使われています。

<table></table>

この範囲が一つの表になるという一番大外です。

<tr></tr>

表のタテを扱います。行を増やすタグです。

<td></td>

表のセルを扱います。セル単位に設置します。
結果です。表になりました!次は、線が欲しいですね。

<table > </table> → <table border > </table>

<table>を<table border>に書き換えます。表らしくなりました。

function mailHTML_hyou2 ( ) { 

 var body=  "<table border ><tr><td>ああ</td><td>いい</td> </tr><tr><td>うう</td><td>ええ</td></tr></table>"

 GmailApp.sendEmail( ' aaa@bbb.com ' , 'タイトル', body,  { htmlBody:body}  );
}

スプレッドシートのセルを表にする

では、スプレッドシートの値を取り出して、HTML文に対応させます。
この表をメールで送信します。

function mailHTML_hyou3 ( ) { //表を送信
  var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   var word1= sheet.getRange(2,2,1,1).getValue();
   var word2=sheet.getRange(2,3,1,1).getValue();
   var word3=sheet.getRange(3,2,1,1).getValue();
   var word4=sheet.getRange(3,3,1,1).getValue();
  
  var body=  "<table border ><tr><td>"+word1+"</td><td>"+word2+"</td> </tr><tr><td>"+word3+"</td><td>"+word4+"</td></tr></table>"
   GmailApp.sendEmail( ' aaa@bbb.com ' , 'タイトル', body,  { htmlBody:body}  );
}


表での送信、完了です!

<table border="1" cellspacing="0">にすれば、線もすっきりする

<table border > の値を変えると、すっきりした見栄えになります。
これ以上きれいな表を作るにはCSSを学んだほうがいいようです。


HTMLの表の作成については、こちらのサイトを参考にさせていただきました。

今回のシートです。
https://docs.google.com/spreadsheets/d/1rGfCiZ6ihCDzgtxdIYLx3a1e4rNT0XlM5aCa9I_e4fY/edit#gid=1804832009

どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。