Как добавить таблицу HTML в мои данные и сохранить форматирование Google Sheets - PullRequest
1 голос
/ 22 июня 2019

Мой почтовый скрипт работает и отправляет диапазон Google Sheet. Проблема в том, что столбцы различаются по ширине в зависимости от данных в ячейках. Поэтому мне нужен код для форматирования данных в таблицу и сохранения форматирования для номера телефона.

Не знаю как починить

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 Ответ

2 голосов
/ 23 июня 2019

Вы можете отправить электронное письмо с телом HTML, добавив четвертый параметр в MailApp.sendMail.Добавление тегов <head> и <style> позволит вам отформатировать таблицу.( документация )

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});
}

Однако я бы рекомендовал пойти еще дальше и воспользоваться преимуществами класса HTMLService и шаблона.В шаблон можно добавить теги <head> и <style>, чтобы вы могли точно отформатировать таблицу.

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});
}

файл "email.html": ( Шаблонная HTML-документация )

<head>
  <style>
    /* style your table here */
  </style>
</head>
<table>
<? for (var row in data) { ?>
  <tr>
<?   for (var col in data[row]) { ?>
  <td> <?= data[row][col] ?> </td>
<?   } ?>
  </tr>
<? } ?>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...