Попытка вставить диаграмму листов в черновик письма с помощью скрипта Google Sheets - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь вставить таблицу листов в черновик сообщения электронной почты, используя Google Sheets Script. Мой сценарий создает PNG диаграммы, но только присоединяет ее вместо вставки в линию. Может ли кто-то пролить свет на то, что я ошибаюсь в своем сценарии?

var chartBlobs = new Array(charts.length); 
var emailBody = "Charts<br>";
var emailImages = {};
for (var i = 0; i < charts.length; i++) {
  var builder = charts[i].modify();
  builder.setOption('vAxis.format', '#');
  var newchart = builder.build();
  chartBlobs[i] = newchart.getAs('image/png');
  emailBody = emailBody + "<p align='center'><img src='cid:chart" + i + "'></p>";
  emailImages["chart" + i] = chartBlobs[i];
}

//var htmltable =[];
var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="0" style="width:100%;table-layout:fixed;font-size:12pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:0px solid#ccc;font-weight:normal;color:black;background-color:white;text-align:left;text-decoration:none;font-style:normal;'
var htmltable = '<table ' + TABLEFORMAT + ' ">';

for (row = 0; row < data.length; row++) {
  htmltable += '<tr>';
  for (col = 0; col < data[row].length; col++) {
    if (data[row][col] === "" || 0) {htmltable += '<td>' + '' + '</td>';} 
    else if (row === 0)  {
      htmltable += '<th>' + data[row][col] + '</th>';
    }
    else if (row === 6)  {
      htmltable += '<th>' + data[row][col] + '</th>';
    }
    else if (row === 8)  {
      htmltable += '<th><font color=#3A8FDD>' + data[row][col] + '</font></th>';
    }
    else {htmltable += '<td>' + data[row][col] + '</td>';}
  }
  htmltable += '</tr>';
}
htmltable += '</table>';
Logger.log(data);
Logger.log(htmltable);

//Send Email
GmailApp.createDraft(emails, subject, '', {
  htmlBody: htmltable, 
  inlineImages: emailImages
});

1 Ответ

0 голосов
/ 15 сентября 2018

Вы должны включить ссылку inlineImage в htmlBody. Но вы отправляете только htmlTable вместо emailBody. Попробуйте

GmailApp.createDraft(emails, subject, '', {
  htmlBody: emailBody+htmltable,  //Added
  inlineImages: emailImages
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...