Google Visualization更改列数据类型

时间:2014-08-05 20:59:20

标签: javascript google-visualization

目前我从电子表格中提取数据,但有些列列为字符串,有些列列为数字。在我提取所有数据以将列的数据类型转换为所有数字后,有没有办法?

1 个答案:

答案 0 :(得分:3)

创建列后,无法更改列的数据类型。有两种解决此问题的方法:将新列添加到相应类型的DataTable中,用数据填充它,然后删除旧列;或使用DataView将字符串转换为动态数字。

以下是添加新列的方法:

// assumes you want to convert column 0 of DataTable "data" to type "number"
// insert a new column at the desired index; this bumps all columns at or after the chosen index up by 1 (so column 0 becomes column 1, 1 becomes 2, etc)
data.insertColumn(0, 'number', data.getColumnLabel(0));
// copy values from column 1 (old column 0) to column 0, converted to numbers
for (var i = 0; i < data.getNumberOfRows(); i++) {
    var val = data.getValue(i, 1);
    if (val != '' && val != null) {
        data.setValue(i, 0, new Number(val).valueOf());
    }
}
// remove column 1 (the old column 0)
data.removeColumn(1);

以下是使用DataView的示例:

// convert the first column to type "number"
var columns = [{
    type: 'number',
    label: data.getColumnLabel(0),
    calc: function (dt, row) {
        var val = dt.getValue(row, 1);
        return (val != '' && val != null) ?new Number(val).valueOf() : null;
    }
}];
// fill in the rest of the columns
for (var i = 1; i < data.getNumberOfColumns(); i++) {
    columns.push(i);
}
var view = new google.visualization.DataView(data);
view.setColumns(columns);

您可以使用DataView而不是DataTable绘制可视化。