gasでスプレッドシートのデータ取得して、html形式のメールを送信します。
表を二つ送信したいのですが、表が二つくっついてしまいます。
tbl& newtd&newtd2がくっついた形です。tbl2のデータは見当たりません。
GAS
1function myFunction() { 2 3 //値取得、二次元配列格納 4 let sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("テスト"); 5 let sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("データ"); 6 7const range3 = sheet2.getRange(3,1,9,6); 8const range4 = sheet2.getRange(6,9,3,2); 9 10console.log("hani:"+range3.getValues()); 11console.log("hani2:"+range4.getValues()); 12 13 let vals = range3.getValues(); 14 let vals2 = range4.getValues(); 15 16let tbl = "<table border='1' style='border-collapse: collapse;'><tr><th>タイムスタンプ</th><th>毎日送信テスト</th><th>テスト</th><th>A</th><th>B</th><th>C"; 17 18//ここでは最後</table>でしめません。forでtrを追加して、一番最後に<table>を追加します。 19 20 let newtd =""; 21 22 vals.forEach(x=>{ //二次元配列valsから一つずつ配列取り出し 23 for(let elnum in x){ //取り出した一次元配列から一つずつ要素取り出し 24 newtd += "<td>"+x[elnum]+"</td>"; 25 } 26 let tr = "<tr>"+newtd+"</tr>" 27 tbl += tr; tr 28 newtd=""; 29 }) 30// let mailText =tbl +"</table>"//ここでtableを閉じます。 31 32 33let tbl2 = "<table border='1' style='border-collapse:collapase;<tr><tr>物</th><th>合計"; 34 let newtd2 =""; 35 vals2.forEach(x=>{ //二次元配列valsから一つずつ配列取り出し 36 for(let elnum in x){ //取り出した一次元配列から一つずつ要素取り出し 37 newtd2 += "<td>"+x[elnum]+"</td>"; 38 } 39 let tr = "<tr>"+newtd2+"</tr>" 40 tbl += tr; tr 41 newtd2=""; 42 }) 43 44let mailText = tbl +"<br><br><br><br></table>" + tbl2 + "</table>" 45 46 // //オプションでHTMLメール本文を設定する 47 48 let options = {"htmlBody":mailText,}; 49 // let options = {"htmlBody":mailText + mailText2,}; 50 51 //GmailApp.sendEmail(メールアドレス,メール表題,本文(htmlメール送信できないとき表示),htmlメールを設定({htmlBody:html本文}) 52 GmailApp.sendEmail("****@****","①テスト送信", mailText , options);

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/27 14:22
2022/01/27 14:41
2022/01/27 14:43
2022/01/27 14:52