如何发送带有格式化HTML表和消息的电子邮件?

时间:2019-06-25 20:34:18

标签: html email google-apps-script google-sheets

我正在尝试发送一封包含固定消息的电子邮件,在其下方是一个格式化的HTML表,该表仅在总列“ row [23]”不为空时才获取范围值,这意味着他正在上班。

简而言之,我正在尝试通过包含Google表格公式的值班人员表将生产率发送给我的团队,以反映内部生产率,但是我需要脚本仅包含具有表格格式值的行,我尝试创建一个新的HTML页面并将其与.gs脚本链接,尝试使用库,尝试使用网站生成格式化的HTML表脚本并将其组合。

function sendEmails2() {

var sheet = SpreadsheetApp.getActiveSheet();

var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet6')

var startRow = 1; 

var numRows = sheet.getLastRow() 

var dataRange = sheet.getRange('A2:x18' );

var data = dataRange.getValues();

for (var i = 0; i < data.length; ++i) {


var row = data[i];

 var emailAddress = 'sherif.gamal1611@gmail.'

var message = "Hi team, kindly check our prod till now as below " 

var Date= row[0];

var subject = 'Productivity Report' + " " + Date;

if (row[23] !="" );  {

//var htmltable =[];

var TABLEFORMAT = 'cellspacing="10" cellpadding="10" dir="ltr" border="1" style="width:100%;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;'

var html table = '<table ' + TABLE FORMAT +' ">';


for (row = 0; row<data.length; row++){

 htmltable += '<tr>';

 for (col = 2 ;col<data[row].length; col++){



  if (data[row][col] === "" || 0) {htmltable += '<td>' + '' + '</td>';} 
 else
  if (row === 0)  {
  htmltable += '<th>' + data[row][col] + '</th>';
 }

else {htmltable += '<td>' + data[row][col] + '</td>';}
}

   htmltable += '</tr>';
 }

  htmltable += '</table>';
   Logger.log(data);
  Logger.log(htmltable);


  MailApp.sendEmail(emailAddress, subject, message,{ htmlBody: htmltable});

   SpreadsheetApp.flush();
 }
}

我收到的邮件中的间距和填充格式不正确,我想知道是否可以对齐并在工作表和邮件中使用相同的格式以在HTML表之前包含一条消息,而该表仅包含包含在总列row [23]“ column X”中具有值的行。

1 个答案:

答案 0 :(得分:0)

将所有内容整理成表格,然后清除初始消息周围的边框