Javascript 在SQl中格式化数字以便通过Google图表工具提示栏显示的最佳方法?

Javascript 在SQl中格式化数字以便通过Google图表工具提示栏显示的最佳方法?,javascript,charts,format,google-visualization,tooltip,Javascript,Charts,Format,Google Visualization,Tooltip,我有一个SQL查询,它将数据输出到一个数组中,我在google图表中使用它。当数字字段被格式化为原始数字(例如374000000)时,我的代码中的图表和格式将正常工作。工具提示正确显示货币和逗号(例如$374000000)。但是,由于我将下表包括在图表中,因此使用起来比较困难。因此,当我在SQL中正确格式化数字并将其显示在表中(例如374000000)时,google图表工具提示将显示$4。我不知道发生了什么事。以下是我迄今为止所尝试的: <script

我有一个SQL查询,它将数据输出到一个数组中,我在google图表中使用它。当数字字段被格式化为原始数字(例如374000000)时,我的代码中的图表和格式将正常工作。工具提示正确显示货币和逗号(例如$374000000)。但是,由于我将下表包括在图表中,因此使用起来比较困难。因此,当我在SQL中正确格式化数字并将其显示在表中(例如374000000)时,google图表工具提示将显示$4。我不知道发生了什么事。以下是我迄今为止所尝试的:

                <script  type="text/javascript"> 
                google.charts.load('current', {packages: ['corechart'],
                callback: drawChart});

                function drawChart() {
                var tableRows = [];
                var results = document.getElementById('chart');
                Array.prototype.forEach.call(results.rows, function(row) {
                var tableColumns = [];
                Array.prototype.forEach.call(row.cells, function(cell) {
                var cellText = cell.textContent || cell.innerText;
                switch (cell.cellIndex) {
                case 0:
                tableColumns.push(cellText.trim());
                break;

                default:
                switch (row.rowIndex) {
                case 0:
                tableColumns.push(cellText.trim());
                break;

                default:
                tableColumns.push(parseFloat(cellText));
                    }
                  }
                });
                tableRows.push(tableColumns);
                });

                var data = google.visualization.arrayToDataTable(tableRows);
                var formatter = new google.visualization.NumberFormat(
                     {negativeColor: 'red', negativeParens: true, pattern: '$###,###'});
                    formatter.format(data, 1);      
                var options = {
                      slices: { 0: {offset: 0.2},
                                1: {offset: 0.2},
                                2: {offset: 0.0},
                                3: {offset: 0.1},
                                4: {offset: 0.0},
                      },     

                title: 'Nice chart', 
                titleTextStyle: {color: 'black', fontSize: 28},
                 bar: {groupWidth: '70%'},
                    chartArea: { backgroundColor: { fill: '#F0F8FC', opacity: 100 }},
                    fontSize:12,
                    legend:  { position: 'right', textStyle: { color: 'black', fontSize: 12}},
                     tooltip: {isHtml: true},
                      is3D: true,

                    };

                var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));


                chart.draw(data, options);
                }
            </script> 

load('current',{packages:['corechart'],
回调:drawChart});
函数绘图图(){
var tableRows=[];
var results=document.getElementById('chart');
Array.prototype.forEach.call(results.rows,function(row){
var tableColumns=[];
Array.prototype.forEach.call(row.cells,function(cell){
var cellText=cell.textContent | | cell.innerText;
开关(cell.cellIndex){
案例0:
tableColumns.push(cellText.trim());
打破
违约:
开关(row.rowIndex){
案例0:
tableColumns.push(cellText.trim());
打破
违约:
push(parseFloat(cellText));
}
}
});
tableRows.push(tableColumns);
});
var data=google.visualization.arrayToDataTable(tableRows);
var formatter=new google.visualization.NumberFormat(
{negativeColor:'red',negativeParens:true,pattern:'$########'});
格式化程序。格式化(数据,1);
变量选项={
切片:{0:{offset:0.2},
1:{偏移量:0.2},
2:{offset:0.0},
3:{偏移量:0.1},
4:{offset:0.0},
},     
标题:“漂亮的图表”,
titleTextStyle:{color:'black',fontSize:28},
条形图:{groupWidth:'70%},
图表区:{背景颜色:{填充:'#F0F8FC',不透明度:100},
尺寸:12,
图例:{位置:'right',文本样式:{颜色:'black',字体大小:12}},
工具提示:{isHtml:true},
is3D:是的,
};
var chart=new google.visualization.PieChart(document.getElementById('chart\u dev');
图表绘制(数据、选项);
}

您可以使用与饼图相同的数据表绘制图表

在这里,您可以为饼图创建数据

var data = google.visualization.arrayToDataTable(tableRows);
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);
然后画饼图

var data = google.visualization.arrayToDataTable(tableRows);
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);
你也可以画一张图表

var data = google.visualization.arrayToDataTable(tableRows);
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);
只需确保在load语句中包含
'table'

google.charts.load('current', {packages: ['corechart', 'table'], callback: drawChart});

可以使用与饼图相同的数据表绘制表格图

在这里,您可以为饼图创建数据

var data = google.visualization.arrayToDataTable(tableRows);
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);
然后画饼图

var data = google.visualization.arrayToDataTable(tableRows);
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);
你也可以画一张图表

var data = google.visualization.arrayToDataTable(tableRows);
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);
只需确保在load语句中包含
'table'

google.charts.load('current', {packages: ['corechart', 'table'], callback: drawChart});

如果您使用google的而不是您正在使用的表,该怎么办?google表图表似乎强制用户硬编码值,而我使用的方法从数据库实时接收我的值。不,它使用您可以加载的数据表,就像任何其他图表一样。您甚至可以使用与饼图相同的数据表绘制图表。我已经看过了您向其他人建议的一些内容,并且承认,您显然是一位经验丰富、技术娴熟的开发人员,远远超出了我的技能范围。但是,我没有跟着你。当我转到google表格图表页面时,这些值是硬编码的。与目前的方式相比,我看不出有什么办法可以让我的SQL查询进入这种状态。如果有一些例子我没有看到,而你觉得很慷慨,请指出。如果你使用谷歌的而不是你正在使用的表格呢?谷歌表格图表似乎强迫用户硬编码值,而我正在使用的方法从数据库实时接收我的值。不,它使用一个你可以加载的数据表,就像其他图表一样。您甚至可以使用与饼图相同的数据表绘制图表。我已经看过了您向其他人建议的一些内容,并且承认,您显然是一位经验丰富、技术娴熟的开发人员,远远超出了我的技能范围。但是,我没有跟着你。当我转到google表格图表页面时,这些值是硬编码的。与目前的方式相比,我看不出有什么办法可以让我的SQL查询进入这种状态。如果有一些例子我没有看到,而你觉得很慷慨,请指出。谢谢你的白帽。图表正在绘制中。仍然带来了最初的问题。在SQL中,当我“将(收入,'货币')格式化为MyRev”时,表中的值显示我最终需要什么(例如2476098美元)。但是,TableChart中的值显示为NAN,实际图表为空。如果我“将(收入、#、##0”)格式化为货币”(例如,2476098不带$symbol),则图表显示$2,工具提示也显示为$2。如果我“将(收入,####0”)格式化为货币”(例如,2476098无逗号,无$symbol),表格和图表绘制正确,工具提示绘制完美的$2476098。我现在就明白了。如果我不在SQL中处理这个数字,那么这个数字将是原始的,我用正确的格式在GoogleChart脚本中对它进行格式化,瞧!谢谢你,白帽!干杯请用投票按钮旁边的复选标记将答案标记为已接受,谢谢