实现效果:
1. 自定义toolbox.feature.dataview;
2. 重新定义Echarts自带数据视图的刷新按钮为”导出Excel“;
3. 组装table;
贴部分代码:
饼图、矩形树图、china地图可使用使用以下代码(data[{name:xx,value:xx}]):
//饼状图dataView
function pieDataView(fileName) {
var dataView = {
show: true, readOnly: false,
lang: ['数据视图', '关闭', '导出Excel'],
contentToOption: function (opts) {
$("#tableExcel_Day").table2excel({
exclude: ".noExl",
filename: fileName + '-' + new Date().Format("yyyyMMddHHmmss") + ".xls", //文件名称
sheetName: fileName,
name: "Excel Document Name.xls",
exclude_img: true,
exclude_links: true,
exclude_inputs: true
});
},
optionToContent: function (opt) {
var series = opt.series[0].data;
var tdHeads = '<td style="padding: 0 10px">车辆类型</td><td style="padding: 0 10px">车辆数</td>';
var tdBodys = ''; //表数据
var table = '<table id="tableExcel_Day" border="1" class="table-bordered table-striped" style="width:100%;text-align:center" ><tbody><tr>' + tdHeads + ' </tr>';
//组装表数据
for (var j = 0; j < series.length; j++) {
var name = series[j].name;
if (name != null && name != undefined) {
tdBodys += '<td>' + name + '</td>';
} else {
tdBodys += '<td></td>';
}
var value = series[j].value;
if (value != null && value != undefined) {
tdBodys += '<td>' + value + '</td>';
} else {
tdBodys += '<td></td>';
}
table += '<tr>' + tdBodys + '</tr>';
tdBodys = '';
}
table += '</tbody></table>';
return table;
}
}
return dataView;
}
柱状图、折线图使用以下代码:
//柱状图dataView
function barDataView(fileName) {
var dataView = {
show: true, readOnly: false,
lang: ['数据视图', '关闭', '导出Excel'],
contentToOption: function (opts) {
$("#tableExcel_Day").table2excel({
exclude: ".noExl", //过滤位置的 css 类名
filename: fileName + '-' + new Date().Format("yyyyMMddHHmmss") + ".xls", //文件名称
sheetName: fileName,
name: "Excel Document Name.xls",
exclude_img: true,
exclude_links: true,
exclude_inputs: true
});
},
optionToContent: function (opt) {
var axisData = opt.xAxis[0].data; //坐标数据
var series = opt.series; //折线图数据
var tdHeads = '<td style="padding: 0 10px">驱动类型</td><td style="padding: 0 10px">车辆数</td>'; //表头第一列
var tdBodys = ''; //表数据
var table = '<table id="tableExcel_Day" border="1" class="table-bordered table-striped" style="width:100%;text-align:center" ><tbody><tr>' + tdHeads + ' </tr>';
//组装表数据
for (var i = 0, l = axisData.length; i < l; i++) {
for (var j = 0; j < series.length; j++) {
var temp = series[j].data[i];
if (temp != null && temp != undefined) {
tdBodys += '<td>' + temp + '</td>';
} else {
tdBodys += '<td></td>';
}
}
table += '<tr><td style="padding: 0 10px">' + axisData[i] + '</td>' + tdBodys + '</tr>';
tdBodys = '';
}
table += '</tbody></table>';
return table;
}
}
return dataView;
}