Как вставить в электронное письмо таблицу с помощью скриптов Google / Макросы Google листов? - PullRequest
0 голосов
/ 26 февраля 2019

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

    function Mails() {
 var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
 var filas= values[0][1];
 var columnas= values[1][0];

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 ss.setActiveSheet(ss.getSheetByName("Enviar"));
 var sheet = SpreadsheetApp.getActiveSheet();
 var dataRange = sheet.getRange(2,4,filas,columnas);
 var data = dataRange.getValues();

 for (i in data) {
 var rowData = data[i];
 var emailAddress = sheet.getRange(1, 3).getValue();
 var destinatario = rowData[0];
 var sigla1 = sheet.getRange(2,4,filas,columnas).getValues();
 var mensaje = 'Estimado ' + destinatario + ',\n\n' + sigla1 ;
 var asunto = 'Mensajes Pendientes';
 MailApp.sendEmail(emailAddress, asunto, mensaje);
 }
}

function onOpen () {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Send Emails', functionName: 'Mails'}
];
spreadsheet.addMenu('Enviar Emails', menuItems);

}

Проблема в том, что эта строка var sigla1 = sheet.getRange(2,4,filas,columnas).getValues(); Я должен вставить ее как таблицу, а не в значения.Как я могу это сделать?

Спасибо

Я сейчас пытаюсь с этим кодом ... но он не работает ..

function Mails() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 ss.setActiveSheet(ss.getSheetByName("Enviar"));
 var sheet = SpreadsheetApp.getActiveSheet();

 var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
 var filas= values[0][1];
 var columnas= values[1][0];

 var recipient = sheet.getRange(1, 3).getValue();
 var subject = 'Estimado';

 var vA=SpreadsheetApp.getActive().getSheetByName('Enviar').getDataRange().getValues();
 var html="<style>th,td{border:1px solid black;}<table>";
 for(var i=0;i<vA.length;i++) {
    html+="<tr>";
    for(var j=0;i<vA[i].length;j++) {
      if(i==0) {
        html+=Utilities.formatString('<th>%s</th>', vA[i][j]);
      }else{
        html+=Utilities.formatString('<td>%s</td>', vA[i][j]);
      }
    }
    html+="</tr>";
  }

  GmailApp.sendEmail(recipient, subject, null, {htmlBody:html})

}

function onOpen () {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Send Emails', functionName: 'Mails'}
];
spreadsheet.addMenu('Enviar Emails', menuItems);

}

Здесьу вас есть изображение того, что мне нужно отправить по электронной почте.

Строки меняются в зависимости от данных, поэтому таблица зависит от того, сколько операций в день ..

1 Ответ

0 голосов
/ 27 февраля 2019

HTML-таблица в электронную почту

function sendHtmlTableViaEmail() {
  var vA=SpreadsheetApp.getActive().getSheetByName('name').getDataRange().getValues();
  var html="<style>th,td{border:1px solid black;}<table>";
  for(var i=0;i<vA.length;i++) {
    html+="<tr>";
    for(var j=0;i<vA[i].length;j++) {
      if(i==0) {
        html+=Utilities.formatString('<th>%s</th>', vA[i][j]);
      }else{
        html+=Utilities.formatString('<td>%s</td>', vA[i][j]);
      }
    }
    html+="</tr>";
  }
 //You have to add the code for recipient and subject
  GmailApp.sendEmail(recipient, subject, null, {htmlBody:html})

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...