Highcharts自定义按钮导出图表

最近比较忙,公司的项目排得满满的,这个六月都没怎么写博客。最近有一个项目需求中,要求自定义的一个名为 “报表导出” 的按钮,看名字就知道了,点击后会下载导出图表图片。Highcharts有自带的导出功能,但不合此项目的需求。毕竟自带的导出按钮在图表里面,界面我上图大家看看。



百度了半天,也没人能解答。。可能没有人遇到我这样的问题吧,最后只能靠自己分析。去查看了Highcharts中的exporting.js里的源码,最后得出结论。。原来如此简单。。在下面分享项目中的部分简略代码

1.body中自然要定义按钮和Highcharts DIV了

<span style="font-size:14px;">	<!-- 查询栏 -->
	<div>
		<table>
			<tr>
				<br />
			</tr>
			<tr>
				<td style="font-size: 14"> XX时间:</td>
				<td><input id="SJFX_dt" type="text" class="easyui-datetimebox"
				editable='false' style="width: 100px" />
				</td>
				<td>—</td>
				<td><input id="SJFX_dt2" type="text" class="easyui-datetimebox"
				editable='false' style="width: 100px" />  </td>
				<td><input type="button" value="查询" οnclick="SJFXSelectClick()"
					style="width: 80px" /> </td>
				<td><input type="button" value="报表导出" οnclick="SJFXClick();"
					style="width: 100px" />
				</td>

			</tr>
		</table>
	</div>
	<!-- 数据图 -->
	<div id="container" style="min-widht:400px;height:400px"></div></span>

2.接下来就是JS代码了

<span style="font-size:14px;"><script type="text/javascript">
	var chart = null;
	$(function() {

		// 颜色变化
		Highcharts.getOptions().colors = Highcharts.map(
				Highcharts.getOptions().colors, function(color) {
					return {
						radialGradient : {
							cx : 0.5,
							cy : 0.3,
							r : 0.7
						},
						stops : [
								[ 0, color ],
								[
										1,
										Highcharts.Color(color).brighten(-0.3)
												.get('rgb') ] // 变模糊
						]
					};
				});

		// Build the chart
		$('#container')
				.highcharts(
						{
							chart : {
								plotBackgroundColor : null,
								plotBorderWidth : null,
								plotShadow : false
							},
							title : {
								text : ''
							},
							tooltip : {
								pointFormat : '{series.name}: <b>{point.percentage:.1f}%</b>'
							},
							plotOptions : {
								pie : {
									allowPointSelect : true,
									cursor : 'pointer',
									dataLabels : {
										enabled : true,
										format : '<b>{point.name}</b>: {point.percentage:.1f} %',
										style : {
											color : (Highcharts.theme && Highcharts.theme.contrastTextColor)
													|| 'black'
										},
										connectorColor : 'silver'
									}
								}
							},
							series : [ {
								type : 'pie',
								name : '所占百分比',
								data : [ [ 'XXXX', 61.0 ], [ 'XXXX', 29 ],
										[ 'XXXXX', 10 ],

								]
							} ],
							credits : { //去除右下角标示
								enabled : false
							},

						});
	

	});
	
	
	
	
	//导出图表按钮
	function SJFXClick() {
		chart = $('#container').highcharts();<span style="white-space:pre">	</span>//得到上面图表的对象
		chart.exportChart({<span style="white-space:pre">			</span>//就这么一句代码,就可实现自定义按钮下载图表功能
			exportFormat : 'PNG'
		});

	}
	
</script></span>

3.用火狐浏览器导出图片总是在下面,不会弹出对话框让其选择下载存放位置。。用360浏览器(他是基于IE浏览器)点击我们刚做完的下载功能按钮,就能自动跳出一个下载对话框,让其自行决定下载在哪个盘哪个位置。




到此我们就把此功能需求做完了,很简单吧,另外有时间的朋友可以去研究一下Highcharts中的exporting.js源码,里面封装好的我们可以自行修改属性和方法,这样可以得到我们所想要的效果,比如下载图表图片的初始化名字;比如图表下载后的大小等等。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值