将表附加到Google Apps脚本上的电子邮件

发布于 2025-02-06 19:28:38 字数 1788 浏览 0 评论 0原文

我有一个代码,该代码在电子邮件中发送了一张工作表的摘要。但是,我想在该电子邮件中添加一个摘要表。我想添加到电子邮件中的表看起来像这样:[![Sheet] [1]] [1]。该表是来自另一张纸的过滤器,仅过滤日期等于日期的行。 我想拥有此表的副本,该表仅包含未空的行并将其添加到电子邮件中的行。 我尝试了此代码:

function myFunction() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
  var responses = ss.getSheetByName("cambios mail");
  var mail = ss.getSheetByName("MAILS");
  var active_range = responses.getActiveRange();
  var cambio = responses.getRange(active_range.getRowIndex(), 5).getValue();
  var nuevo = responses.getRange(3, 11).getValue();
  var cancelados = responses.getRange(3, 12).getValue();
  var fecha =responses.getRange(3, 8).getValue();
  var date = Utilities.formatDate(fecha, "GMT+2", "dd/MM/YYYY")
 var sheet = ss.getSheetByName('cambios drop');
 var values = sheet.getRange("A2:I" + sheet.getLastRow()).getValues();
 var tabla= JSON.stringify(values);
var subject = "CAMBIOS REFERENCIAS: Resumen refes canceladas/añadidas";
    var body = "Los siguientes modelos fueron modificados en el Master Doc ayer fecha " +date +".\n\n" + "Refes añadidas:" + nuevo + "\n\nRefes canceladas:"+ cancelados+ "\n\nCualquier consulta podéis contestar a este mail."+"\n\nAdjunto una tabla con los cambios de drops de ayer. Si no hubo cambios, la tabla aparecerá vacía."+"\n\nTabla"+ tabla+  "\n\nArchivo: https://docs.google.com/spreadsheets/d/";
   var mailCorrecto = mail.getRange(1,2).getValues()
    GmailApp.sendEmail(mailCorrecto, subject, body);

这就是电子邮件中的表格: [![电子邮件] [2]] [2]

有人知道如何将范围格式化以将其视为电子邮件中的表格? 先感谢您! [1]: https://i.sstatic.net/tt3b9.png [2]: https://i.sstatic.net/pzmed.pzmed.png

I have a code that sends a summary of a sheet in an email. However, I want to add a summary table from another sheet to that email. The sheet that I want to add to the email looks like this: [![Sheet][1]][1]. This sheet is a filter from another sheet and it filters only the rows where the date is equal to the date in B1.
I would like to have a copy of this table that contains only the rows that are not empty and add it to the email.
I tried this code:

function myFunction() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
  var responses = ss.getSheetByName("cambios mail");
  var mail = ss.getSheetByName("MAILS");
  var active_range = responses.getActiveRange();
  var cambio = responses.getRange(active_range.getRowIndex(), 5).getValue();
  var nuevo = responses.getRange(3, 11).getValue();
  var cancelados = responses.getRange(3, 12).getValue();
  var fecha =responses.getRange(3, 8).getValue();
  var date = Utilities.formatDate(fecha, "GMT+2", "dd/MM/YYYY")
 var sheet = ss.getSheetByName('cambios drop');
 var values = sheet.getRange("A2:I" + sheet.getLastRow()).getValues();
 var tabla= JSON.stringify(values);
var subject = "CAMBIOS REFERENCIAS: Resumen refes canceladas/añadidas";
    var body = "Los siguientes modelos fueron modificados en el Master Doc ayer fecha " +date +".\n\n" + "Refes añadidas:" + nuevo + "\n\nRefes canceladas:"+ cancelados+ "\n\nCualquier consulta podéis contestar a este mail."+"\n\nAdjunto una tabla con los cambios de drops de ayer. Si no hubo cambios, la tabla aparecerá vacía."+"\n\nTabla"+ tabla+  "\n\nArchivo: https://docs.google.com/spreadsheets/d/";
   var mailCorrecto = mail.getRange(1,2).getValues()
    GmailApp.sendEmail(mailCorrecto, subject, body);

And this is what the table looks like on the email:
[![email][2]][2]

Does anybody know how I can format the range to be able to see it as a table on the email?
Thank you in advance!
[1]: https://i.sstatic.net/Tt3b9.png
[2]: https://i.sstatic.net/pZMEd.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过期情话 2025-02-13 19:28:38

用于将表发送到电子邮件

html的模板html文件:

<!DOCTYPE html>
 <html>
   <head>
     <title>My Title</title>
   </head>
   <body>
     <div id="myimages">
        <? for(var i = 0;i < filename.length; i++) { ?>
          <br /><img src="cid:img<?= i ?>"  /><br />File Name: <?= filename[i] ?><hr /> 
        <? } ?>
     </div>
  • 这是表的div

     &lt; div id =“ tabledata”&gt;
         &lt; var vs = getBullSheetData(); ?&gt;
         &lt; table&gt;
           &lt; vs.foreach(((r,i)=&gt; {?&gt;
             &lt; tr&gt;
             &lt; r.foreach((c,j)=&gt; {?&gt;
               &lt;如果(i == 0){?&gt;
              &lt; th style =“填充:2px 5px; font-jight:粗体;边框:1px实心黑色;”&gt;&lt;?= c? &lt;/th&gt;           
             &lt; } else {?&gt;
               &lt; td style =“ padding:2px 5px; border:1px固体黑色;”&gt;&lt;?= vs [i] [j]?&gt; &lt;/td&gt;
             &lt; }?&gt;
           &lt; }); ?&gt;
             &lt;/tr&gt;
           &lt; }); ?&gt;
         &lt;/table&gt;
       &lt;/div&gt;
     
  • 这是末端

     &lt;/body&gt;
     

function getBullSheetData() {
  Logger.log('entering getBullSheetData')
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet2');
  const vs = sh.getDataRange().getValues();
  return vs;
}

模板html

A templated html file for sending a table to an email

html:

<!DOCTYPE html>
 <html>
   <head>
     <title>My Title</title>
   </head>
   <body>
     <div id="myimages">
        <? for(var i = 0;i < filename.length; i++) { ?>
          <br /><img src="cid:img<?= i ?>"  /><br />File Name: <?= filename[i] ?><hr /> 
        <? } ?>
     </div>
  • This is the div for the table

       <div id="tabledata">
         <? var vs = getBullSheetData(); ?>
         <table>
           <? vs.forEach((r,i)=>{ ?>
             <tr>
             <? r.forEach((c,j)=>{ ?>
               <? if(i == 0) { ?>
              <th style="padding:2px 5px;font-weight:bold;border:1px solid black;"><?= c ?> </th>           
             <? } else { ?>
               <td style="padding:2px 5px;border:1px solid black;"><?= vs[i][j] ?> </td>
             <? } ?>
           <?  }); ?>
             </tr>
           <? }); ?>
         </table>
       </div>
    
  • This is the end

     </body>
    

gs:

function getBullSheetData() {
  Logger.log('entering getBullSheetData')
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet2');
  const vs = sh.getDataRange().getValues();
  return vs;
}

templated html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文