谷歌可视化数据表:计算总数

Google visualization DataTable: calculate totals

本文关键字:计算 可视化 数据表 谷歌      更新时间:2023-09-26

我正在寻找一种将一行总计添加到简单数据表的方法。这是我的代码:

// Create and populate the data table.
var dt = new google.visualization.DataTable();
dt.addColumn('string', 'Name');
dt.addColumn('number', 'Height');
dt.addRows([
    ['Tong Ning mu', 174],
    ['Huang Ang fa', 523],
    ['Teng nu', 86]
]);
var myTotal;
/* calculate total sum of column Height */
dt.addRow(['TOTAL', myTotal]);
// Create and draw the visualization.
visualization = new google.visualization.Table(document.getElementById('table'));
visualization.draw(dt, null);

如何从数据表中计算dt myTotal

是否可以使最后一行(总计)加粗?

有没有更优雅的方法将总计添加到表中?

创建以下函数:

function getSum(data, column) {
    var total = 0;
    for (i = 0; i < data.getNumberOfRows(); i++)
        total = total + data.getValue(i, column);
    return total;
}

使用您创建的Google数据表和列数组索引调用它。在您的情况下:

var total = getSum(dt,1);

然后,您可以将该总数添加到新的原始数据中,或者您想要用它做什么。

由于@Danny的回复与我对列求和的解决方案相同,因此我不会写它。

设置单元格属性 dataTable.setProperty(columnIndex,rowIndex,'style','font-weight:bold;');

所以在你的情况下,你会写
dt.setProperty(0, 3, 'style','font-weight:bold;'); dt.setProperty(1, 3, 'style','font-weight:bold;');

假设您提供了更大的 dataTable,为所有单元格键入此内容可能不方便,您可以使用 for 循环,例如(使整个最后一行加粗):

var lastRow = dt.getNumberOfRows()-1
for (i=0, n=dt.getNumberOfColumns(); i < n; i++) {
   dt.setProperty(i, lastRow, 'style', 'font-weight:bold;');
}
遗憾的是,您无法将属性

设置为整行/整列(请参阅有关此自定义属性的文档)。