2016-01-13 79 views
1

我有这个脚本,它在电子表格中发送一个具有特定单元格值的电子邮件。将具有许多小数位的数字格式化为货币

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("$0.00"); 
    var range_bill_com = sheet.getRange('k2'); 
    if (range_bill_com.getValue() !=-1){ 
    var recipients = "[email protected]"; 
    var message = ''; 
    var subject = 'exemplo'; 
    var body = 'O valor previsto de Lucro/Prejuízo para hoje é de:' + values; 
    MailApp.sendEmail(recipients, subject, body); 
     } 
    }; 

但在电子邮件中收到,该值的格式并不像我想的一样,这将是美元(例如:“啊,勇敢previsto德Lucro /PrejuízoparaHOJEé德:945.2709034832405) 。 我尝试了一些变化,但不知道如何得到我想要的格式的消息值。 谁能帮我改这个剧本?

+0

Y您可以使用两个不同的变量获得活动的电子表格两次,无需重复。重用第一个。 –

+0

如果范围是单个单元格,则不需要使用'getValues()'。使用'getValue()'(结尾处的否)。它只获得一个单一的价值。它是一维数组,而不是二维数组。 'getValues()'(“s”结尾)得到一个二维数组。 –

+0

这里是一个可能帮助你:[格式化数字从电子表格](http://stackoverflow.com/a/25229213/2946873) –

回答

0

第一装饰小数号码,然后连接文本与领先美元符号

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("$0.00"); 

    var range_bill_com = sheet.getRange('k2'); 

    if (range_bill_com.getValue() !=-1){ 
    var recipients = "[email protected]"; 
    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; 
}; 
+0

对不起,桑迪,但在什么顺序我把formatToCurrency函数在我的脚本?我没有经验。此外,K2电池的价值在不断变化。 –

+0

查看更新的答案。 –

+0

哈!这是完美的!我只是改变“var body”para“var body ='O valor previsto de Lucro /Prejuízopara hojeéde:'+ valueFormatedAsCurrency”,并且电子邮件的作品完美无缺!非常感谢! –