GASを利用してスプレッドシート上に作成された2つのグラフをgmailにて送付することを実現したいです。
一つの画像を送付することはできましたが、2つのグラフをinlineに入れるとエラーになりました。
解決するにはどこを修正する必要がありますでしょうか。
エラー
TypeError: Cannot read property 'getBlob' of undefined
2つ目の画像の取得が失敗しているのだと思いますが解決方法が分かりません。
場所
コード下部のGmailApp.sendEmail() inlineImagesの部分
function send_gmail() {//シート名をして指定してシートを取得します。今回の場合は「graph」シート var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("graph"); //getChartsメソッドでシート内のチャートを取得 var charts = mySheet.getCharts(); //charts配列に格納されたデータから0番目と1番目のグラフを画像として取得 var imageBlob = charts[0].getBlob().getAs('image/png').setName("chart_image.png"); var imageBlob2 = charts[1].getBlob().getAs('image/png').setName("chart_image.png"); //フォルダIDを指定して、フォルダを取得 var folder = DriveApp.getFolderById('フォルダーID'); //フォルダにcreateFileメソッドを実行して、ファイルを作成 folder.createFile(imageBlob); folder.createFile(imageBlob2); // 画像ファイルを取得 var graphFiles = []; var Folderkey = "フォルダID"; var files = DriveApp.getFolderById(Folderkey).getFiles(); if (files.hasNext()) { graphFiles.push(files.next()); } /* 更新日時の降順に並び替え */ graphFiles.sort(function(a,b){ if(a.getLastUpdated() > b.getLastUpdated()) return -1; if(a.getLastUpdated() < b.getLastUpdated()) return 1; return 0; }); var sheet = SpreadsheetApp.openById("スプレッドシートID"); var mail_info = sheet.getSheetByName("mail_info"); var send_to = mail_info.getRange("A2").getValue(); var send_cc = mail_info.getRange("B2").getValue(); var send_subject = "【テスト】" var send_body = mail_info.getRange("C2").getValue(); var today = Utilities.formatDate(new Date(), "JST", "yyyyMMdd"); GmailApp.sendEmail( send_to, send_subject + today, { cc: send_cc, from: "send@gmail.com",//送信元 name: "テスト",//表示名 htmlBody: send_body, inlineImages: { Graph: graphFiles[0].getBlob().getAs('image/png'), Graph2: graphFiles[1].getBlob().getAs('image/png') } } ); }
エラー箇所
Graph2: graphFiles[1].getBlob().getAs('image/png')
TypeError: Cannot read property 'getBlob' of undefined
send_bodyの中身
こんにちは
<br>
<img src='cid:Graph' width="90%" height="90%"><br>
<br>
<img src='cid:Graph2' width="90%" height="90%"><br>
<br>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/03 03:01