如何将HTML表格添加到数据中并保留Google表格的格式

时间:2019-06-22 20:16:42

标签: javascript google-apps-script

我的电子邮件脚本有效并发送了Google表格范围。问题在于列的宽度根据单元格中的数据而变化。因此,我需要代码来将数据格式化为表格并保持电话号码的格式。

我不知道如何解决

function SendEmail() {
  var s = SpreadsheetApp.getActive().getSheetByName('LOOKUP');
  var to = s.getRange('G4').getValue();
  var data = s.getRange('A36:E91').getValues();
  var body = '';
  for (var row in data) {
    for (var col in data[row]) {
      body += data[row][col] + '\t';
    }
    body += '\n';
  }
  MailApp.sendEmail(to, 'This Is Your Current Bus Roster', body);
}

电子邮件正文数据列的宽度必须固定,以便它们从上到下排列。

1 个答案:

答案 0 :(得分:2)

您可以通过向yum添加第四个参数来发送带有HTML正文的电子邮件。添加MailApp.sendMail<head>标签将使您格式化表格。 (documentation

<style>

但是,我建议您更进一步,并充分利用HTMLService class和模板。在模板中,您可以添加function SendEmail() { var s = SpreadsheetApp.getActive().getSheetByName('LOOKUP'); var to = s.getRange('G4').getValue(); var data = s.getRange('A36:E91').getValues(); var body = '<head><style>' /* + your css here */ + '</style></head><table>'; for (var row in data) { body += '<tr>'; for (var col in data[row]) { body += '<td>' + data[row][col] + '</td>'; } body += '</tr>'; } body += '</table>'; MailApp.sendEmail(to, 'This Is Your Current Bus Roster', '', {htmlBody: body}); } <head>标签,以便完全按照所需的格式设置表格。

<style>

文件“ email.html”:(Templated HTML documentation

function SendEmail() {
  var s = SpreadsheetApp.getActive().getSheetByName('LOOKUP');
  var to = s.getRange('G4').getValue();
  var data = s.getRange('A36:E91').getValues();
  var body = HtmlService.createTemplateFromFile('email');
  body.data = data;
  body = body.evaluate().getContent();
  MailApp.sendEmail(to, 'This Is Your Current Bus Roster', '', {htmlBody: body});
}