【问题标题】:Email of specific data rang / table from Google Sheet来自 Google 表格的特定数据范围/表格的电子邮件
【发布时间】:2022-06-14 08:15:30
【问题描述】:
function B2B() {

  var summary = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary");
  var subject = "B2B - Delivery Status on";
  var recipient = "******@***.in";
  var dataRange = summary.getRange('B2:AA49'); 
  var data = dataRange.getValues();
  summary.getRange(2, 2, 25, 25).getValue;
  var body = "I just discovered Apps Script and it's so cool!" + data;
  MailApp.sendEmail(recipient, subject, body);

}

使用了这个正在工作并且邮件正在发送的查询,但是,选定的数据范围是我在邮件中没有以表格格式获取的表格。

【问题讨论】:

    标签: google-apps-script google-sheets gmail


    【解决方案1】:

    试试这个

    function B2B() {
    
      var summary = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary");
      var subject = "B2B - Delivery Status on";
      var recipient = "******@***.in";
      var dataRange = summary.getRange('B1:AA49');
      var [headers, ...rows] = dataRange.getValues();
      MailApp.sendEmail({
        to: recipient,
        subject: subject,
        htmlBody: "I just discovered Apps Script and it's so cool!" + "<br><br>" + tableHTML([headers], rows)
      })
    
    }
    
    function tableHTML(headers, data) {
      var tableformat = 'cellspacing="2" cellpadding="2" border="1" style="width:100%;border-collapse:collapse;border:1px solid #ccc"';
      var header = headers.map(h => '<tr><th>' + h.join('</th><th>') + '</th></tr>')
      var rows = data.map(r => '<tr><td>' + r.join('</td><td>') + '</td></tr>')
      return '<table ' + tableformat + ' >\n' + header.join('\n') + rows.join('\n') + '</table>'
    }
    

    你需要 htmlbody 而不是 body

    tableHTML 是将数据转换为表格的函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多