Javascript 从.gs函数中获取一个html表,并在.html正文中调用它

Javascript 从.gs函数中获取一个html表,并在.html正文中调用它,javascript,html,google-apps-script,Javascript,Html,Google Apps Script,有人能帮助我理解如何调用专用于GmailApp.sendmail()的.HTML正文中的.gs函数生成的HTML表吗? 以下是一个例子: 一,。首先,我们使用电子表格中的数据创建一个html表格: 奇怪的符号是什么;x3e代替?试试这个(我的第一个评论): 尝试而不是,并删除htmlTemplate.tableDHL=createTableDHL() 或 直接在html文件中尝试此模式: <table> <? for (var i = 0; i < da

有人能帮助我理解如何调用专用于GmailApp.sendmail()的.HTML正文中的.gs函数生成的HTML表吗? 以下是一个例子:

一,。首先,我们使用电子表格中的数据创建一个html表格:

奇怪的符号是什么;x3e代替

试试这个(我的第一个评论):

尝试
而不是
,并删除
htmlTemplate.tableDHL=createTableDHL()

直接在html文件中尝试此模式:

   <table>
      <? for (var i = 0; i < data.length; i++) { ?>
        <tr>
          <? for (var j = 0; j < data[i].length; j++) { ?>
            <td><?= data[i][j] ?></td>
          <? } ?>
        </tr>
      <? } ?>
    </table>

第三种解决方案:


尝试
而不是
并删除
htmlTemplate.tableDHL=createTableDHL()不,第一个选项不起作用。仍在消息中获取代码。看起来像:亲爱的,今天交货:日期牌号码Q包裹数量2011年10月11日Friekurp85/ETMWC662 67511/10/2019Fridz FP20/DL 5334P2 298检查我的编辑(第三个解决方案)并使用
检查。innerHTML
Too建议的解决方案不起作用。我想,由于
mBody
返回的HTML代码不合适,如果你想复制你的应用程序脚本项目并与我共享,我可以看一看是的,当然!你想让我怎么把密码发给你?在私人信息还是在这里?
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>

  <body>
    <p style=font-family:verdana,sans-serif > Dear All,<br><br> 
    <span style=background-color:rgb(217,234,211)><b>Delivery for today:</b></span></p>
    <?= tableDHL ?>
    <p style=font-family:verdana,sans-serif > Trucks should arrive till <b>4:30 PM</b>.<br>
    More details can be sent to you by our suppliers.<br><br>
    <span style=background-color:rgb(207,226,243)><b>Forecast:</b></span><br>
    <?= dayDelivery ?> we are planning to deliver about <b> <?= plansLow ?> - <?= plansHigh ?> parcels.</b><br><br>
    <span style=background-color:rgb(255,242,204)><b>Returns:</b></span><br>
    Tomorrow we are planning to pick up our returned packages by listed trucks:</p>
    <?= returns ?> <?= monReturns ?>

  </body>
</html>
function sendEmailsDHL(){

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("B2C DE");
  var today = Utilities.formatDate(new Date(), "UTC", "dd/MM/yyyy");
  var data = sheet.getDataRange().getDisplayValues(); //We get all the values from A to D and from row 2 to the last one.  

  var add1day = 1000 * 60 * 60 * 24;
  var add3days = 1000 * 60 * 60 * 24*3;
  var today2 = new Date();
  var tomorrow = Utilities.formatDate(new Date(today2.getTime() + add1day), "UTC", "dd/MM/yyyy");
  var Mon = Utilities.formatDate(new Date(today2.getTime() + add3days), "UTC", "dd/MM/yyyy");
  var plansLow = 0

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

    if (Utilities.formatDate(new Date(), "UTC", "EEE") == "Fri"){

      if (data[i][0] == Mon && data[i][3] == "returns" && data[i][4] == "NL"){

        var NLmonRet = data[i][2];

      }

      if (data[i][0] == Mon && data[i][3] ==""){
        plansLow += 2000; 
      }

    }else{

      if (data[i][0] == tomorrow && data[i][3] ==""){
        plansLow += 2000; 

      }
    }
  }

  var plansHigh = Number(plansLow) + 1500;

  if (Utilities.formatDate(new Date(), "UTC", "EEE") == "Fri"){

    var dayDelivery = "On Monday";
    var MonReturns = "<br>On Monday we are planning to pick up our returned packages by listed trucks:<br>" + NLmonRet;

  }else{

    var dayDelivery = "Tomorrow";
    var MonReturns = "";

  }

  var htmlTemplate = HtmlService.createTemplateFromFile("message");

  htmlTemplate.tableDHL = createTableDHL();
  htmlTemplate.dayDelivery = dayDelivery;
  htmlTemplate.plansLow = plansLow;
  htmlTemplate.plansHigh = plansHigh;
  htmlTemplate.returns = truckReturns();
  htmlTemplate.monReturns = MonReturns;

  var mBody = htmlTemplate.evaluate().getContent();
  Logger.log(mBody)

  GmailApp.sendEmail(
    'xxxxx@gmail.com', //You can put as many emails you want
    'prealert ' + today,
    '',
    { htmlBody: mBody });
}
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>

  <body>
    <p style="font-family:verdana,sans-serif" > Dear All,<br><br> 
    <span style="background-color:rgb(217,234,211)"><b>Delivery for today:</b></span></p>
    <div onLoad="this.innerHTML = '\x3ctable border-collapse=collapse\x3e\x3ctr height=50 style=background-color:rgb\(207,226,243\)\x3e\x3cth\x3eDate\x3c\/th\x3e\x3cth width=50\x3eDay\x3c\/th\x3e\x3cth width=200\x3ePlate numbers\x3c\/th\x3e\x3cth\x3eQ-ty of parcels\x3c\/th\x3e\x3c\/tr\x3e\x3ctr\x3e\x3ctd align=center\x3e14\/10\/2019\x3c\/td\x3e\x3ctd align=center\x3eMon\x3c\/td\x3e\x3ctd align=center\x3eEKURP85\/ETMWC66\x3c\/td\x3e\x3ctd align=center\x3e2 675\x3c\/td\x3e\x3c\/tr\x3e\x3ctr\x3e\x3ctd align=center\x3e14\/10\/2019\x3c\/td\x3e\x3ctd align=center\x3eMon\x3c\/td\x3e\x3ctd align=center\x3eDDZ FP20\/ DL 5334P\x3c\/td\x3e\x3ctd align=center\x3e2 298\x3c\/td\x3e\x3c\/tr\x3e\x3c\/table\x3e'"></div>
    <p style="font-family:verdana,sans-serif" > Trucks should arrive till <b>4:30 PM</b>.<br>
    More details can be sent to you by our suppliers.<br><br>
    <span style="background-color:rgb(207,226,243)"><b>Forecast:</b></span><br>
    Tomorrow we are planning to deliver about <b> 6000 - 7500 parcels.</b><br><br>
    <span style="background-color:rgb(255,242,204)"><b>Returns:</b></span><br>
    Tomorrow we are planning to pick up our returned packages by listed trucks:</p>
    &lt;table border=0&gt;&lt;tr&gt;&lt;td&gt;EKURP85/ETMWC66&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;     
  </body>
</html>
   <table>
      <? for (var i = 0; i < data.length; i++) { ?>
        <tr>
          <? for (var j = 0; j < data[i].length; j++) { ?>
            <td><?= data[i][j] ?></td>
          <? } ?>
        </tr>
      <? } ?>
    </table>