Javascript google.visualization.DataTable()合并行
我在Google数据表中有这些数据: 我需要合并具有相同日期的行。因此,结果将是: DataTable中是否有一个内置方法来实现这一点,或者有人可以给我一个提示,如何做到这一点,而不需要典型地遍历表并在每一行上进行比较 下面是我现在正在尝试的JSFIDLE链接Javascript google.visualization.DataTable()合并行,javascript,datatable,google-visualization,visualization,Javascript,Datatable,Google Visualization,Visualization,我在Google数据表中有这些数据: 我需要合并具有相同日期的行。因此,结果将是: DataTable中是否有一个内置方法来实现这一点,或者有人可以给我一个提示,如何做到这一点,而不需要典型地遍历表并在每一行上进行比较 下面是我现在正在尝试的JSFIDLE链接 jsfiddle.net/Kwangsub_Ahn/ohh8397h/7/ HTML <script type="text/javascript" src="https://www.google.com/jsapi">&
jsfiddle.net/Kwangsub_Ahn/ohh8397h/7/
HTML
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="table_div"></div>
JAVASCRIPT
google.load("visualization", "1.1", {
packages: ["table"]
});
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Date');
data.addColumn('string', 'Project');
data.addColumn('string', 'System');
data.addColumn('number', 'No');
data.addRows([
['7/31/2014', 'project1', 'system1', 5],
['5/2/2014', 'project2', 'system2', 2],
['5/2/2014', 'project1', 'system1', 5],
['1/31/2014', 'project3', 'system4', 1]
]);
var view = new google.visualization.DataView(data);
var id = document.getElementById('table_div');
var table = new google.visualization.Table(id);
table.draw(view, {
allowHtml: true,
width: '100%',
height: '100%',
page: 'enable',
pageSize: 10
});
}
jsfiddle.net/KwangsubèAhn/ohh8397h/7/
HTML
JAVASCRIPT
加载(“可视化”,“1.1”{
包装:[“表格”]
});
setOnLoadCallback(drawTable);
函数drawTable(){
var data=new google.visualization.DataTable();
data.addColumn('string','Date');
data.addColumn('string','Project');
data.addColumn('string','System');
data.addColumn('number','No');
data.addRows([
['7/31/2014','project1','system1',5],
[2014年5月2日”,“项目2”,“系统2”,2],
['5/2/2014','project1','system1',5],
['1/31/2014','project3','system4',1]
]);
var view=newgoogle.visualization.DataView(数据);
var id=document.getElementById('table_div');
var table=新的google.visualization.table(id);
表.绘制(视图{
allowHtml:是的,
宽度:“100%”,
高度:“100%”,
页面:“启用”,
页面大小:10
});
}
没有任何标准选项
但您可以手动修改表格图表
一旦触发'ready'
事件
请参阅以下工作片段
google.charts.load('current'{
回调:drawTable,
套餐:[“表”]
});
函数drawTable(){
var data=new google.visualization.DataTable();
data.addColumn('string','Date');
data.addColumn('string','Project');
data.addColumn('string','System');
data.addColumn('number','No');
数据。添加行(['7/31/2014','project1','system1',5','5/2/2014','project2','system2','2','5/2/2014','project1','system1','5/2/2014','project4','system4','5/2/2014','project3','system4',5','1/31/2014','project3','system4',1','1/31/2014','project4','system4',2]];
var view=newgoogle.visualization.DataView(数据);
var id=document.getElementById('table_div');
var table=新的google.visualization.table(id);
google.visualization.events.addOneTimeListener(表'ready',函数(){
var rowLabel=null;
var指数;
var-rowSpan;
var rows=id.getElementsByTagName('tr');
Array.prototype.forEach.call(行,函数(行,索引){
if(rowLabel!==row.cells[0].innerHTML){
rowLabel=行。单元格[0]。innerHTML;
行索引=索引;
如果(行跨度>1){
行[index-rowSpan]。单元格[0]。rowSpan=rowSpan;
}
rowSpan=1;
}否则{
row.removeChild(row.cells[0]);
如果(索引==(rows.length-1)){
行[index-rowSpan]。单元格[0]。rowSpan=++rowSpan;
}否则{
rowSpan++;
}
}
});
});
表.绘制(视图{
allowHtml:是的,
宽度:“100%”,
高度:“100%”,
页面:“启用”,
页面大小:10
});
}
当我提供数据如
data.addRows([[7/31/2014”,“project1”,“system1',5”,“5/2/2014”,“project2”,“system2',2”,“5/2/2014”,“project1”,“system1',5”,“5/2/2014”,“project4',4”,“5/2/2014”,“project3”,“system4',5”,“1/31/2014”,“project3”,“system4',1],['1/31/2014','project4','system4',2]]代码>返回2行5/2/2014日期,但应为1行。其中rowspan为4@白帽