質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

400閲覧

GASにて1つのメールに2つの表を送信したい HTMLメールを利用

Susuwatari

総合スコア2

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/01/27 02:52

GASを使って、二つの表をメールに記載したい。
こうすると、二つの表がつながってしまいます。

二つの表をきちんと分けて表示させたいのですが。。。

GAS

1function sendEmail() { 2 3let hani = sheet2.getRange(2,11).getValue(); 4 5 6 const range3 = sheet3.getRange(27,1,hani+2,11); 7 const range4 = sheet2.getRange(13,1,9,6) 8 9 let vals = range3.getDisplayValues(); 10 let vals2 = range4.getDIsplayValues(); 11 12let body1 = "今週は"+ hani + "件ありました。"; 13 14 15  //ここでforを使ってval⇒htmlのtable形式に 16 17let tbl1= "<table border='1' style='border-collapse: collapse ;'><tr><th>搬入日</th><th>工場</th><th>経由</th><th>店</th><th>c</th><th>D</th><th>E</th><th>F</th><th>担当者"; 18 19 20 let newtd =""; 21 22 vals.forEach(x=>{ //二次元配列valsから一つずつ配列取り出し 23 24 for(let elnum in x){ //取り出した一次元配列から一つずつ要素取り出し 25 newtd += "<td>"+x[elnum]+"</td>"; 26 } 27 let tr = "<tr>"+newtd+"</tr>" 28 tbl += tr; tr 29 newtd=""; 30 }) 31let tbl2="<table border='1' style='border-collapse: collapse ;'><tr><th>A</th><th>Bc</th><th>D</th><th>E</th><th>F"; 32 let newtd =""; 33 34 vals2.forEach(x=>{ //二次元配列valsから一つずつ配列取り出し 35 for(let elnum in x){ //取り出した一次元配列から一つずつ要素取り出し 36 newtd += "<td>"+x[elnum]+"</td>"; 37 } 38 let tr = "<tr>"+newtd+"</tr>" 39 tbl += tr; tr 40 newtd=""; 41 }) 42 43 44 let mailText1 = body1 + "<br><br>" + tbl1+ "<br><br>"+ tbl2 + "</table>"//ここでtableを閉じます。 45 46 // //オプションでHTMLメール本文を設定する 47 let options = {"htmlBody":mailText1,}; 48 49 GmailApp.sendEmail("****@****","テスト送信", mailText1 , options);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Susuwatari

2022/01/27 03:19

let tbl2 の前ですよね。 </table>を入れると、そこで構文エラーとなり、保存が出来ません。 
guest

回答1

0

tbl1 の後に </table> を足しましょう。

投稿2022/01/27 02:57

int32_t

総合スコア20884

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Susuwatari

2022/01/27 03:19

let tbl2 の前ですよね。 </table>を入れると、そこで構文エラーとなり、保存が出来ません。 
int32_t

2022/01/27 03:24 編集

JavaScriptの基本的な構文は習得しといたほうがいいですよ。 let mailText1 の初期化で tbl1 の後に <br><br> ではなく </table><br><br> を付けるべきという意図です。
Susuwatari

2022/01/27 05:49

そうですよね。 まだまだ勉強中で失礼いたしました。 行ったのですが、 tbl1,vals,vals2 改行 tbl2 の形で貼り付けられます。
int32_t

2022/01/27 06:06 編集

> tbl1,vals,vals2 > 改行 > tbl2 の形で貼り付けられます。 表が2つになったのですか? それならこの質問は解決かと思います。 質問文にあるコードではvalsとvals2の内容はメールに含まれないですよね。
Susuwatari

2022/01/27 11:58

tbl1がvalsのタイトル、tbl2がvals2のタイトルなので、tbl1の後にvals1、改行があって、tbl2の後にvals2が来て初めて二つの表になると思うのですが。。
int32_t

2022/01/27 15:07

「二つの表がつながってしまいます。」という問題が解決したなら、この質問は解決済みにしてください。vals vals2 が期待通りに出力されていないのは別の問題なので、別の質問にしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問