将具有许多小数位的数字格式化为货币
Format a number with many decimal places as currency
我有这个脚本可以发送一封电子邮件,其中包含电子表格中某个单元格的特定值。
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var spr = SpreadsheetApp.getActiveSpreadsheet();
var column = spr.getRange('k2');
var values = column.getValues();
var cell = sheet.getRange('k2');
cell.setNumberFormat("[=10=].00");
var range_bill_com = sheet.getRange('k2');
if (range_bill_com.getValue() !=-1){
var recipients = "email@gmail.com";
var message = '';
var subject = 'exemplo';
var body = 'O valor previsto de Lucro/Prejuízo para hoje é de:' + values;
MailApp.sendEmail(recipients, subject, body);
}
};
但是在收到的电子邮件中,这个值的格式与我想要的不一样,应该是美元(例如:“O valor previsto de Lucro/Prejuízopara hoje é de:945.2709034832405).
我尝试了一些更改,但不知道如何以我想要的格式获取消息值。
谁能帮我修改这个脚本?
首先 trim 小数位数,然后用前导美元符号连接文本。
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var column = ss.getRange('k2');
var value = column.getValue();
var cell = sheet.getRange('k2');
cell.setNumberFormat("[=10=].00");
var range_bill_com = sheet.getRange('k2');
if (range_bill_com.getValue() !=-1){
var recipients = "email@gmail.com";
var message = '';
var subject = 'exemplo';
var valueFormatedAsCurrency = formatToCurrency(value);
var body = 'O valor previsto de Lucro/Prejuízo para hoje é de:' +
valueFormatedAsCurrency;
MailApp.sendEmail(recipients, subject, body);
}
};
function formatToCurrency(inputArg) {
//Logger.log('typeof inputArg: ' + typeof inputArg);
var inputToNumber = Number(inputArg);
var fixedValue = inputToNumber.toFixed(2);
var valAsString = fixedValue.toString();
//Logger.log('typeof valAsString: ' + typeof valAsString);
var valAsCurrency = "$" + valAsString;
//Logger.log('valAsCurrency: ' + valAsCurrency);
return valAsCurrency;
};
我有这个脚本可以发送一封电子邮件,其中包含电子表格中某个单元格的特定值。
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var spr = SpreadsheetApp.getActiveSpreadsheet();
var column = spr.getRange('k2');
var values = column.getValues();
var cell = sheet.getRange('k2');
cell.setNumberFormat("[=10=].00");
var range_bill_com = sheet.getRange('k2');
if (range_bill_com.getValue() !=-1){
var recipients = "email@gmail.com";
var message = '';
var subject = 'exemplo';
var body = 'O valor previsto de Lucro/Prejuízo para hoje é de:' + values;
MailApp.sendEmail(recipients, subject, body);
}
};
但是在收到的电子邮件中,这个值的格式与我想要的不一样,应该是美元(例如:“O valor previsto de Lucro/Prejuízopara hoje é de:945.2709034832405). 我尝试了一些更改,但不知道如何以我想要的格式获取消息值。 谁能帮我修改这个脚本?
首先 trim 小数位数,然后用前导美元符号连接文本。
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var column = ss.getRange('k2');
var value = column.getValue();
var cell = sheet.getRange('k2');
cell.setNumberFormat("[=10=].00");
var range_bill_com = sheet.getRange('k2');
if (range_bill_com.getValue() !=-1){
var recipients = "email@gmail.com";
var message = '';
var subject = 'exemplo';
var valueFormatedAsCurrency = formatToCurrency(value);
var body = 'O valor previsto de Lucro/Prejuízo para hoje é de:' +
valueFormatedAsCurrency;
MailApp.sendEmail(recipients, subject, body);
}
};
function formatToCurrency(inputArg) {
//Logger.log('typeof inputArg: ' + typeof inputArg);
var inputToNumber = Number(inputArg);
var fixedValue = inputToNumber.toFixed(2);
var valAsString = fixedValue.toString();
//Logger.log('typeof valAsString: ' + typeof valAsString);
var valAsCurrency = "$" + valAsString;
//Logger.log('valAsCurrency: ' + valAsCurrency);
return valAsCurrency;
};