###実現したいこと
一気に購入した場合下記のような購入履歴が届きます。
下記のようなGmailが届いたとき、メールの内容を自動でスプレッドシートに反映させたいです。
各それぞれのセルに 1.商品名 2.申し込み番号 3.小計(税込み)をスプレッドシートに反映
させたいのですが、1つのメール内に同じような内容があった場合反映されなくて困っています。
どのようにすればよいのでしょうか?
ーーーーーーーーーーーーーーーーーーーーーーー
「現場のチカラ」 【養生テープ】 半透明 幅50mm×50m アスクル 1巻
お申込番号:000000
販売価格(税込) 注文数量 小計(税込)
¥477 3 ¥1,431
伊藤忠リーテイルリンク OPP袋(テープなし) L判写真用 横95×縦135mm 透明袋 1袋(100枚入)
お申込番号:111111
販売価格(税込) 注文数量 小計(税込)
¥160 2 ¥320
「現場のチカラ」 厚手布両面テープ 幅25mm×15m Monf(モンフ) 古藤工業 1巻
お申込番号:222222
販売価格(税込) 注文数量 小計(税込)
¥376 3 ¥1,128
エプソン 写真用紙ライト〈薄手光沢〉KL100SLU L判 1箱(100枚入)
お申込番号:333333
販売価格(税込) 注文数量 小計(税込)
¥671 2 ¥1,342
セイコーエプソン 純正 インクカートリッジ KETA-5CL 1パック(5色入) KEN・TAK(ケンダマ・タケトンボ)シリーズ
お申込番号:444444
販売価格(税込) 注文数量 小計(税込)
¥3,135 1 ¥3,135
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
###コード
function Main2() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('【アスクル】ご注文ありがとうございました') // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // メール本文が取得できているかログに出力して確認 Logger.log(plainBody); //注文番号を取り出す var order_number = plainBody.match(/お申込番号:(.*)/); // 商品の価格を取り出す var order_pay = plainBody.match(/販売価格(税込) 注文数量 小計(税込)[\s]*¥(.*)[\s\S]* ]/); // 商品名を取り出す var order_name = plainBody.match(/ [\s]*(.*)[\s\S]*お申込番号/); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('アスクル自動化'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow, 1).setValue(order_pay[1] ) sheet.getRange(lastRow, 2).setValue(order_number[1]); sheet.getRange(lastRow, 3).setValue(order_name[1]);; }); }); }
回答3件
あなたの回答
tips
プレビュー