google-apps-script - 在谷歌表格脚本上获取格式的日期
问题描述
我正在使用此脚本从下表中获取一些信息(此表信息用于通过电子邮件发送信息)并且我获得了巨大的数据格式,因此我尝试使用 . 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})”
解决方案
尝试在你的循环中添加这样的东西,这样你就不会再遇到这个问题了。
if(MailApp.getRemainingDailyQuota()>0){
MailApp.sendEmail({to: emailRecipients,subject: emailSubject,htmlBody: htmlBody,cc: CCemail})
}
推荐阅读
- petapoco - 无效操作。使用 Petapoco FetchAsync 时连接已关闭错误
- javascript - 从第一个文本区域获取价值并在第二个文本区域打印
- python - AWS Sagemaker:传递给 Estimator 的数据格式是什么?
- c++ - 滥用条件变量
- macos - 通过 AppleScript 从 Finder 中的选择中取消选择文件
- ios - 如何使用 SwiftyJSON 显示 API 图像
- javascript - 如何更改每个字符的颜色
- ios - 基于 UITableView Frame 和 ContentSize 的动态页脚高度
- c - 使用开关盒的奇数和偶数
- javascript - jquery禁用按钮,直到第一个按钮被点击