3

合計の行を単純な 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);

DataTablemyTotalから計算するには?dt

最後の行(合計)を太字にすることはできますか?

テーブルに合計を追加するよりエレガントな方法はありますか?

4

2 に答える 2

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;');
}

残念ながら、プロパティを行/列全体に設定することはできません (これに関するカスタム プロパティのドキュメントを参照してください)。

于 2015-05-21T06:39:00.277 に答える
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);

次に、その合計を新しい raw に追加するか、それで何をしたいかを追加できます。

于 2015-05-21T04:54:07.220 に答える