echarts图表切换数据且导出excel

最重要的是引入js

(jquery.table2excel.js的源代码)

链接:https://pan.baidu.com/s/1DYs_t0jPqkGqJSEwpzD4eg 
提取码:1234 
复制这段内容后打开百度网盘手机App,操作更方便哦

<script src="js/jquery.table2excel.js"></script>
<select style="u-input" id="virSelect">
		<option>top5</option>
		<option>更多</option>
</select>
<div class="panel-body" id="line" style="height: 215px;">
</div>
<!-- 模态框(Modal) -->
	<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
		<div class="modal-dialog">
			<div class="modal-content">
				<div class="modal-header">
					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
					<h4 class="modal-title" id="myModalLabel">数据</h4>
					<div class="f-fr">
						<select style="u-input" id="moreSelect">
							<option>top10</option>
							<option>top20</option>
							<!-- <option>top50</option> -->
						</select>
					</div>
				</div>
				<div class="modal-body">
					<div class="panel-body" style="width: 100%;">

						<div id="line1" style="height: 400px;width: 100%;"></div>

					</div>
				</div>
			</div><!-- /.modal-content -->
		</div><!-- /.modal -->
	</div>
function pileUp(ID, datas) {
		var dom = document.getElementById(ID);
		var myChart = echarts.init(dom);
		// myChart.setOption(
		var options = {
			tooltip: {

				trigger: 'axis',
				axisPointer: { // 坐标轴指示器,坐标轴触发有效
					type: 'line', // 默认为直线,可选为:'line' | 'shadow'
				},
			},
			toolbox: {
				show: true,
				right: '13px',
				top: '-5px',
				feature: {
					dataView: {
						show: true,
						title: '表格数据',
						lang: ['表格数据:', '关闭', '导出Excel'], // 按钮
						// icon:"image://images/excel.png",             // ‘数据视图’按钮自定义img
						contentToOption: function(opts) {
							$('#'+ID).table2excel({ // 下载jquery.table2excel.js,引入,$("#tempChart")是Echarts容器
								exclude: ".noExl", //过滤位置的 css 类名, 有class = “noExl” 的行不被导出
								filename: "数据视图",
								name: "Excel Document Name.xls",
								exclude_img: true,
								exclude_links: true,
								exclude_inputs: true
							});
						},
						// 数据视图展示为table
						optionToContent: function(opt) {
							var axisData = opt.yAxis[0].data; // 坐标数据
							var series = opt.series; //折线图数据,此处即为数据源,可以打印查看
							var tdHeads = '<td  style="padding: 0 10px">病毒名称</td>'; //表头第一列
							var tdBodys = ''; //表数据
							//组装表头
							var nameData = new Array("病毒数");
							for (var i = 0; i < nameData.length; i++) {
								tdHeads += '<td style="padding: 0 10px">' + nameData[i] + '</td>';
							}
							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; i < axisData.length; 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;
						}
					}

				},
			},

			grid: {
				left: '3%',
				top: '10%',
				bottom: '2%',
				right: '6%',
				containLabel: true
			},
			xAxis: {
				type: 'value',
				boundaryGap: false,
				splitNumber: 0,
				axisLine: {
					lineStyle: {
						width: 2,
						color: '#B4B4B4'
					}
				},
				axisTick: {
					show: true,
					lineStyle: {
						width: 2,
						color: '#B4B4B4',
					}
				},
				splitLine: {
					show: false,
					lineStyle: {
						color: '#B4B4B4'
					}
				},
				axisLabel: {
					textStyle: {
						color: '#8c8c8c',
						fontSize: 12
					},
				},
			},
			yAxis: {
				type: 'category',
				data: datas.ydata,
				position: 'left',
				axisLabel: {
					formatter: '{value}',
					color: '#8c8c8c',
				},
				axisLine: {
					show: false,

				},
				splitLine: {
					show: false,

				},
				axisTick: {
					show: false,
				}
			},
			series: [{
				name: '病毒',
				type: 'bar',
				stack: '总量',
				barWidth: 10,
				itemStyle: {
					normal: {
						color: '#0769CB',
						barBorderRadius: [0, 50, 50, 0],
					}
				},
				label: {
					normal: {
						show: false,
						position: 'insideRight'
					}
				},
				z: 10,
				data: datas.value,

			}]
		}
		var charts = new Array();
		myChart.setOption(options);
		charts.push(myChart);
		$(window).resize(function() {
			for (var i = 0; i < charts.length; i++) {
				charts[i].resize();
			}
		});
		$('#myModal').on('shown.bs.modal', function() {
			myChart.resize()
		})

	}

	$.ajax({
		type: 'get',
		success: function(response) {
			$('#virSelect').trigger('change');
			$('#moreSelect').trigger('change');
		}
	});

	$('#virSelect').on('change', function() {
		var val = $(this).val();
		ajax(val)
	})
	$('#moreSelect').on('change', function() {
		var val = $(this).val().slice(3, 6);
		ajax1(val)
	})

	function ajax(val) {
		$.ajax({
			"url": "json/nv.json",
			"type": "GET",
			"dataType": "JSON",
			"success": function(data) {
				var gtData = new Array();
				var gtvalue = new Array();
				console.log(val)
				if (val == "top5") {
					console.log(val)
					for (i = 0; i <= 4; i++) {
						gtData[i] = data[i].name;
						gtvalue[i] = data[i].value;
					}
					var LineChart1 = {
						ydata: gtData,
						value: gtvalue
					}
					pileUp("line", LineChart1)
				} else {
					$('#myModal').modal('show')
				}
			},
			"error": function(data) {
				pileUp("line", LineChart);
			}
		});
	}

	function ajax1(val) {
		$.ajax({
			"url": "json/test.json",
			"type": "GET",
			"dataType": "JSON",
			"success": function(data) {

				var gtData = new Array();
				var gtvalue = new Array();
				console.log(val)
				if (val) {
					console.log(val)
					for (i = 0; i <= val - 1; i++) {
						gtData[i] = data[i].name;
						gtvalue[i] = data[i].value;
					}

					var LineChart1 = {
						ydata: gtData,
						value: gtvalue
					}
					pileUp("line1", LineChart1)

				}
			},
			"error": function(data) {
				pileUp("line1", LineChart1);
			}
		});
	}

[{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本一"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
		"value": 33,
		"name": "版本二"
	},
	{
		"value": 34,
		"name": "版本三"
	},
	{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本一"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
			"value": 33,
			"name": "版本二"
		},
		{
			"value": 34,
			"name": "版本三"
		},
		{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本一"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
				"value": 33,
				"name": "版本二"
			},
			{
				"value": 34,
				"name": "版本三"
			},
			{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本一"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				},
				{
					"value": 33,
					"name": "版本二"
				},
				{
					"value": 34,
					"name": "版本三"
				}

]

 可能有更简洁的办法,期待大神们指点下

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值