google-apps-script - Google Script:让变量以正确的格式出现在自动电子邮件中的问题
问题描述
我已经从谷歌表格设置了自动电子邮件,但是它引用的数字和日期并没有像表格中显示的那样正确格式化它们。有人可以帮我解决我需要更改的内容,以使百分比不是正常数字,到小数点后第二位。以及使用 mm/dd/yyyy 格式的日期。
var EMAIL_DRAFTED = "EMAIL DRAFTED";
function weekly_report() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //replace with source ID
var sheet = ss.getSheetByName('Individual Report Emails'); // replace with source Sheet tab name
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow() - 1; // Number of rows to process
var lastColumn = sheet.getLastColumn(); // Last column
var dataRange = sheet.getRange(startRow, 1, numRows, lastColumn) // Fetch the data range of the active sheet
var data = dataRange.getValues(); // Fetch values for each row in the range
// Work through each row in the spreadsheet
for (var i = 0; i < data.length; ++i) {
var row = data[i];
// Assign each row a variable
var Isa = row[0]; // Col A: ISA
var IsaEmail = row[1]; // Col B: Email
var LastWeekTotalAudits = row[12]; // Col M: Last Week Total Audits
var LastWeekQualifiers = row[13]; // Col N: Last Week Qualifiers
var LastWeekObjection = row[14]; // Col O: Last Week Objection
var LastWeekTransferred = row[15]; // Col P: Last Week Transferred
var LastWeekDocumented = row[16]; // Col Q: Last Week Documented
var LastWeekDiction = row[17]; // Col R: Last Week Diction
var LastWeekTone = row[18]; // Col S: Last Week Tone
var LastWeekKnowledge = row[19]; // Col T: Last Week Knowledge
var LastWeekAverage = row[20]; // Col U: Last Week Average
var LastWeekConversions = row[21]; // Col V: Last Week Conversions
var WeekBeforeLastTotalAudits = row[22]; // Col W: Week Before Last Total Audits
var WeekBeforeLastQualifiers = row[23]; // Col X: Week Before Last Qualifiers
var WeekBeforeLastObjection = row[24]; // Col Y: Week Before Last Objection
var WeekBeforeLastTransferred = row[25]; // Col Z: Week Before Last Transferred
var WeekBeforeLastDocumented = row[26]; // Col AA: Week Before Last Documented
var WeekBeforeLastDiction = row[27]; // Col AB: Week Before Last Diction
var WeekBeforeLastTone = row[28]; // Col AC: Week Before Last Tone
var WeekBeforeLastKnowledge = row[29]; // Col AD: Week Before Last Knowledge
var WeekBeforeLastAverage = row[30]; // Col AE: Week Before Last Average
var WeekBeforeLastConversions = row[31]; // Col AF: Week Before Last Conversions
var LastWeekSoW = row[54]; // Col BC: Last Week SoW
var LastWeekEoW = row[55]; // Col BD: Last Week EoW
var WkDifTotalAudits = row[64]; // Col BM: WkDif Total Audits
var WkDifQualifiers = row[65]; // Col BN: WkDif Qualifiers
var WkDifObjection = row[66]; // Col BO: WkDif Objection
var WkDifTransferred = row[67]; // Col BP: WkDif Transferred
var WkDifDocumented = row[68]; // Col BQ: WkDif Documented
var WkDifDiction = row[69]; // Col BR: WkDif Diction
var WkDifTone = row[70]; // Col BS: WkDif Tone
var WkDifKnowledge = row[71]; // Col BT: WkDif Knowledge
var WkDifAverage = row[72]; // Col BU: WkDif Average
var WkDifConversions = row[73]; // Col BV: WkDif Conversions
var emailStatus = row[84]; // Col CG: Email Status
// Prevent from drafing duplicates and from drafting emails without a recipient
if (emailStatus !== EMAIL_DRAFTED && IsaEmail) {
// Build the email message
var emailBody = '<h2><strong>WEEKLY AUDIT REVIEW </strong></h2>' ;
emailBody += '<h3><strong>' + LastWeekSoW + ' - ' + LastWeekEoW + ' </strong></h3>' ;
emailBody += '<hr />';
emailBody += '<h3><strong>Last Week: </strong></h3>' ;
emailBody += '<p><strong>Audits Performed: </strong>' + LastWeekTotalAudits + '<br /><strong>Avg Qualifiers %: </strong>' + LastWeekQualifiers + '<br /><strong>Avg Objection %: </strong>' + LastWeekObjection + '<br /><strong>Avg Transferred %: </strong>' + LastWeekTransferred + '<br /><strong>Avg Documented %: </strong>' + LastWeekDocumented + '<br /><strong>Avg Diction %: </strong>' + LastWeekDiction + '<br /><strong>Avg Tone %: </strong>' + LastWeekTone + '<br /><strong>Avg Knowledge %: </strong>' + LastWeekKnowledge + '<br /><strong>Last Week Average: </strong>' + LastWeekAverage + '</p>';
emailBody += '<hr />';
emailBody += '<h3><strong>Week Prior: </strong></h3>' ;
emailBody += '<p><strong>Audits Performed: </strong>' + WeekBeforeLastTotalAudits + '<br /><strong>Avg Qualifiers %: </strong>' + WeekBeforeLastQualifiers + '<br /><strong>Avg Objection %: </strong>' + WeekBeforeLastObjection + '<br /><strong>Avg Transferred %: </strong>' + WeekBeforeLastTransferred + '<br /><strong>Avg Documented %: </strong>' + WeekBeforeLastDocumented + '<br /><strong>Avg Diction %: </strong>' + WeekBeforeLastDiction + '<br /><strong>Avg Tone %: </strong>' + WeekBeforeLastTone + '<br /><strong>Avg Knowledge %: </strong>' + WeekBeforeLastKnowledge + '<br /><strong>Prior Week Average: </strong>' + WeekBeforeLastAverage + '</p>';
emailBody += '<hr />';
emailBody += '<h3><strong>Variance: </strong></h3>' ;
emailBody += '<p><strong>Audits Performed: </strong>' + WkDifTotalAudits + '<br /><strong>Avg Qualifiers %: </strong>' + WkDifQualifiers + '<br /><strong>Avg Objection %: </strong>' + WkDifObjection + '<br /><strong>Avg Transferred %: </strong>' + WkDifTransferred + '<br /><strong>Avg Documented %: </strong>' + WkDifDocumented + '<br /><strong>Avg Diction %: </strong>' + WkDifDiction + '<br /><strong>Avg Tone %: </strong>' + WkDifTone + '<br /><strong>Avg Knowledge %: </strong>' + WkDifKnowledge + '<br /><strong>Avg Variance: </strong>' + WkDifAverage + '</p>';
emailBody += '<hr />';
emailBody += '<p><strong>In the event of poor performance, a manager will review with you. </strong>' ;
// Create the email draft
MailApp.sendEmail(
IsaEmail, // Recipient
'Your Weekly Call Audit Review for' + LastWeekSoW + ' - ' + LastWeekEoW, // Subject
'', // Body (plain text)
{
htmlBody: emailBody // Options: Body (HTML)
}
);
sheet.getRange(startRow + i, lastColumn).setValue(EMAIL_DRAFTED); // Update the last column with "EMAIL_DRAFTED"
SpreadsheetApp.flush(); // Make sure the last cell is updated right away
}
}
}
但它在电子邮件中看起来像这样: 当前不正确的电子邮件格式示例
解决方案
如果要获取显示值,可以使用getDisplayValues。您将使用数据变量的行更改为此。
var data = dataRange.getDisplayValues();// Fetch values for each row in the range
推荐阅读
- java - 在android java中以超级用户身份在系统根文件中创建文件主机
- ios - 每次我进行更改时预览都会出错(SwiftUI)
- react-native - 为什么我的文本没有显示在我的导入视图中?
- php - 您如何使用 Outlook 业务网络发送具有同一公司域的电子邮件?
- javascript - 表单数据 POST 与 Ajax POST
- json - 安全字符串读取为字符串
- schema - 如何将架构标记与图像 alt 标记结合起来?
- laravel - Laravel - 当我们可以使用服务容器时,为什么我们需要服务提供者
- python - Matplotlib:更改每个 y 值
- reactjs - 在 iframe 中运行的 Reactjs 应用程序,大小问题