我正在寻找一种方法来向一个简单的DataTable添加一行总计。这是我的代码:
// 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);
如何从myTotal
DataTable计算dt
?
是否可以将最后一行(Totals)设为粗体?
有没有更优雅的方法来向表中添加总计?
答案 0 :(得分:0)
创建以下功能:
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);
然后,您可以将该总数添加到新的原始内容中或者您想要使用它做什么。
答案 1 :(得分:0)
由于@ 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;');
}
遗憾的是,您无法将属性设置为整行/列(请参阅documentation有关此内容的自定义属性)。