Javascript 如何使用Google脚本更改工具提示中数字的格式

Javascript 如何使用Google脚本更改工具提示中数字的格式,javascript,charts,google-apps-script,google-visualization,Javascript,Charts,Google Apps Script,Google Visualization,我一直在试图找到一个详细的答案。但是运气不好,也许你们可以帮我 所以我正在用谷歌脚本构建这个图表。我用这个在Index.html文件中构建了图表 google.visualization.ColumnChart(); 所以我收集了数据,并创建了一个数据表 var dataTable = new google.visualization.DataTable(); dataTable.addColumn('date', 'Week'); dataTable.addColumn('n

我一直在试图找到一个详细的答案。但是运气不好,也许你们可以帮我

所以我正在用谷歌脚本构建这个图表。我用这个在Index.html文件中构建了图表

google.visualization.ColumnChart();
所以我收集了数据,并创建了一个数据表

var dataTable = new google.visualization.DataTable();
    dataTable.addColumn('date', 'Week');
    dataTable.addColumn('number', 'Build');
    dataTable.addColumn('number', 'GP');
并像这样将这些选项添加到我的图表中

var options = {'title':'Production',
                   'width':1366,
                   'height':768,
                   'vAxis': {'format': 'currency'}
                   };
图表显示得非常好!但我有一个小问题。“数字”数据类型中的值实际上是货币值。但是,它们不是在工具提示中表示,而是像普通数字一样表示。它们之间没有逗号分隔,没有小数点,特别是没有美元符号。下面是我所说的一个例子。如何将这些特定自定义项添加到工具提示中。有什么想法吗

谢谢你们的帮助

真诚地,

Sicariuxs

您需要自定义工具提示字符串,并自己格式化字符串,以将其显示为货币。以下是如何做到这一点:

Number.prototype.formatMoney = function(c, d, t){
var n = this, 
    c = isNaN(c = Math.abs(c)) ? 2 : c, 
    d = d == undefined ? "." : d, 
    t = t == undefined ? "," : t, 
    s = n < 0 ? "-" : "", 
    i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", 
    j = (j = i.length) > 3 ? j % 3 : 0;
   return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
 };
Number.prototype.formatMoney=函数(c、d、t){
var n=这个,
c=isNaN(c=Math.abs(c))?2:c,
d=d==未定义?“:d,
t=t==未定义?,“:t,
s=n<0?-“:”,
i=parseInt(n=Math.abs(+n | | 0).toFixed(c))+“”,
j=(j=i.length)>3?j%3:0;
返回s+(j?i.substr(0,j)+t:)+i.substr(j).替换(/(\d{3})(?=\d)/g,“$1”+t)+(c?d+Math.abs(n-i).toFixed(c).slice(2):”);
};
然后,只需将参数传递给工具提示并使用formatMoney函数,即。
build\u amount.formatMoney(2)
谷歌提供

在这里,我使用格式化程序格式化数据第二列中的数字。
这样可以正确显示工具提示

我还在图表选项中为纵轴提供了一种格式,它与格式化程序是分开的

google.load('visualization','1',{'packages':['corechart'],'callback':drawChart});
函数绘图图(){
var data=new google.visualization.DataTable();
data.addColumn('string','Department');
data.addColumn(“数字”、“收入”);
data.addRows([
[Shoes',10700],
[‘体育’,-15400],
[Toys',12500],
[‘电子学’,-2100],
[“食物”,22600],
[“第1100条]
]);
var chart=new google.visualization.ColumnChart(document.getElementById('numberformat_div'));
//创建数字格式化程序
var formatter=new google.visualization.NumberFormat({
前缀:“$”,
否定:是的
});
//格式化第二列中的数据
格式化程序。格式化(数据,1);
图表绘制(数据、{
言辞:{
格式:‘$#,##0.00;($#,##0.00)’
}
});
}


嘿,谢谢你的帮助,伙计。我想你的代码正是我想要的。但是我仍然在
formatter.format(data,1)上得到了这个我知道这行代码也很糟糕,因为当我注释掉它时,图表运行良好。当然,工具提示上没有正确的格式。有什么建议吗?对不起!我成功了!我把你的代码搞砸了!但一旦我纠正了它!成功了!谢谢你,伙计!