首页 > 解决方案 > 在谷歌表格脚本上获取格式的日期

问题描述

我正在使用此脚本从下表中获取一些信息(此表信息用于通过电子邮件发送信息)并且我获得了巨大的数据格式,因此我尝试使用 . getDay.getMonth().getFullYear(),但我收到错误消息:

“例外:一天内调用了太多次服务:电子邮件。(第 108 行,文件“代码”)”

我想那是因为我在一个循环中多次使用 get 3 次,有没有办法在没有这个错误消息的情况下采取?因为我想采用电子表格上的格式日期(Day-shortMonth-year)

我看到了,Utilities.formatDate()但我无法想到使用它的方法。

相关范围截图

这是脚本的一部分,我没有放所有东西,因为脚本有点大,但是如果您需要,请告诉我,我会编辑并放置所有内容。

function myFunction() {
  let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let rows = ss.getDataRange().getValues();
  var emailRecipients = rows[1][0]+"@gmail.com";
  var CCemail = rows[1][1]+"@gmail.com";
  var emailSubject = "Vacation Request";
for (i = 1; i < rows.length; i++) {
    let bg_color;
    switch(rows[i][5]) {
        case 'Reflected':
              bg_color = 'green';
              break;
        case 'Cancelled':
              bg_color = 'Darkred';
              break;
        case 'Pending':
              bg_color = 'orange';
              break;
        case 'Rejected':
              bg_color = 'red';
              break;
        default:
              bg_color = 'white';
    }
    htmlBody += `   
     <table cellspacing="0" cellpadding="0" dir="ltr" border="1" style="table-layout:fixed;font-size:10pt;font-family:Arial;width:0px;border-collapse:collapse;border:none">
       <colgroup>
              <col width="100">
              <col width="100">
              <col width="100">
              <col width="100">
       </colgroup>
       <tbody>  
          <tr style="height:21px">
            <td style="overflow:hidden;padding:2px 3px;vertical-align:middle;text-align:center;border:1px solid rgb(204,204,204)">
            ${rows[i][2].getDate()+"-"+rows[i][2].getMonth()+"-"+rows[i][2].getFullYear()}
          <\/td>
            <td style="overflow:hidden;padding:2px 3px;vertical-align:middle;text-align:center;border:1px solid rgb(204,204,204)">
            ${rows[i][3]}
          <\/td>
            <td style="overflow:hidden;padding:2px 3px;vertical-align:middle;text-align:center;border:1px solid rgb(204,204,204)">
            ${rows[i][4]}
          <\/td>
          <td style="overflow:hidden;padding:2px 3px;vertical-align:middle;background-color:${bg_color};font-weight:bold;color:rgb(255,255,255);text-align:center;border:1px solid rgb(204,204,204)">  
            ${rows[i][5]}
          <\/td>
        <\/tr>
     <\/table>`;

第 108 行是:

“MailApp.sendEmail({to:emailRecipients,主题:emailSubject,htmlBody:htmlBody,cc:CCemail})”

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-formula

解决方案


尝试在你的循环中添加这样的东西,这样你就不会再遇到这个问题了。

if(MailApp.getRemainingDailyQuota()>0){
   MailApp.sendEmail({to: emailRecipients,subject: emailSubject,htmlBody: htmlBody,cc: CCemail})
}

推荐阅读