highcharts教程之highcharts线性图结合浏览器调用Excel.Application完美实现图表数据导出至Excel。
highcharts图表数据的保存我们知道的有很多种,最常见的是以下3种:
1、导出成为图片文件:jpg、png等;
2、导出成为pdf文件;
3、将其数据保存成文文本信息;
今天我们将重点介绍另外一种比较简单和直接的图表数据导出方法,那就是结合浏览器调用其内部固有的Excel的ActiveX插件,实现highcharts图表数据导出至Excel。
我其实也只是结合了以上两者实现了将其highcharts图表数据导出至Excel的,具体示例请见下列完整代码:
<!DOCTYPE HTML5>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>将Highcharts线性图表数据导出至Excel内</title>
<script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
var chart = null;
$(function () {
$('#divChart').highcharts({
chart: {
plotBorderWidth: 1
},
title: {
text:"highcharts 导出至 Excel示例"
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
credits: {
enabled: false //右下角不显示LOGO
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}, {
data: [23, 45.5, 78.4, 89.2, 100.0, 135.0, 76.6, 32.5, 22.4, 67.1, 60.6, 123]
}]
});
});
///将highcharts线性图表数据导出至Excel内
function ExportToExcel() {
//获取chart对象
chart = $('#divChart').highcharts();
//获取chart的横坐标x轴上的刻度集合
var categoriesObj = chart.xAxis[0].categories;
//获取chart的series对象集合
var seriesObj = chart.series;
//创建AX对象excel
var oXL = new ActiveXObject("Excel.Application");
//获取workbook对象
var oWB = oXL.Workbooks.Add();
//激活当前sheet
var oSheet = oWB.ActiveSheet;
//设置工作薄名称
oSheet.name = chart.options.title.text;
//设置表头
//设置series一栏
oSheet.Cells(1, 1).value = "Series名称";
//设置x横坐标标签作为表头
for (var i = 0; i < categoriesObj.length; i++) {
oSheet.Cells(1, i + 2).value = categoriesObj[i];
}
//设置内容部分
for (var i = 0; i < seriesObj.length; i++) {
//动态设置第一列的series名称
oSheet.Cells(i + 2, 1).value = seriesObj[i].name;
//动态获取每一sereis 每一个点y轴上的数据值
for (var j = 0; j < categoriesObj.length; j++) {
oSheet.Cells(i + 2, j + 2).value = seriesObj[i].yData[j];
}
}
oXL.Visible = true; //设置excel可见属性
}
</script>
</head>
<body>
<script type="text/javascript" language="javascript" src="http://code.highcharts.com/highcharts.js"></script>
<script type="text/javascript" language="javascript" src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="divChart" style="width: 500px; height: 400px; margin: 0 auto">
</div>
<div style="margin-top: 15px; text-align: center; width: 100%;">
<input type="button" id="btnReport" value="导出Excel" onclick="ExportToExcel()" />
</div>
</body>
</html>
效果图如下所示:
点击“导出Excel”按钮过后我们神奇地看到弹出一个Excel文档,文档内的数据效果图如下所示;
注意事项
1、以上效果最好在IE或者搜狗浏览器下运行;
2、机器上Excel已经安装.
3、Internet 选项=>安全=>Internet 自定义级别 \"对没有标记为安全的ActiveX控件进行初始化和脚本运行,设定为启用\";
原文地址:http://www.stepday.com/topic/?544