将Highcharts图表数据生成Table表格
有的时候,我们不仅仅需要漂亮的统计图来显示统计结果,还需要在统计图下方一个表格可以更加直观的展现各类数据。既然统计图都显示出来了,那我们可以根据统计图的各元素生成表格了。
首先,先显示统计图。
Html----通过一个查询按钮,根据查询条件,查询满足条件的数据,显示到统计图中。
<a onclick="Query();" >查询</a>
<center>
<div id="chartPro" style="width: 80%"></div>
<div id="container" style="width:700px;hight:70px"></div>
</center>
JS------生成统计图,生成表格
function Query(){
/* 获取查询条件------start------ */
var tradTp=document.getElementById( "tradTp").value;//所属行业
var county=document.getElementById( "county").value;//所属区县
var replDtS=document.getElementById("replDtS").value;//批复时间,开始
var replDtE=document.getElementById("replDtE").value;//批复时间,结束
var radios = document.getElementsByName('type');
var countyRad=radios[0];
var trapTpRad=radios[1];
var chartTp;
if(countyRad.checked==true){
chartTp=countyRad.value;
}
if(trapTpRad.checked==true){
chartTp=trapTpRad.value;
}
/* 获取查询条件------end------ */
$.ajax({
type:"post",
dataType:"json",
data: {"project.tradTp":tradTp,"project.county":county,"project.replDtS":replDtS,"project.replDtE":replDtE,"project.chartTp":chartTp},
async:false,
url : "<%=basePath%>wiassess/projectMgr/projectMgrAction!getProjectChart.action",
success : function(result) {
var jsonData = result;
var xdata = jsonData.xdata; //获取横坐标数组
var data = jsonData.data; //获取显示数据
var titleTm = jsonData.title; //获取标题
var chart = new Highcharts.Chart( //生成统计图表
{
chart : {
renderTo : 'chartPro', //指向要生成图表的div的Id
type : 'column', //柱形图类型
margin : 75, //以下是样式设置
options3d : {
enabled : true,
alpha : 0,
beta : 0,
depth : 50,
viewDistance : 25
}
},
title : {
text : titleTm //显示标题
},
credits : {//不显示highchart超链接
enabled : false
},
plotOptions : {
column : {
depth : 10,
value : 0,
width : 1
}
},
yAxis : {
title : {
text : '单位:立方米'
}
},
xAxis : {
categories : xdata
},
tooltip : { //鼠标移至柱形图上提示数据格式
shared : true,
useHTML : true,
headerFormat : '<small>{point.key}</small><table>',
pointFormat : '<tr><td style="color: {series.color}">{series.name}: </td>'
+ '<td style="text-align: right"><b>{point.y} 立方米</b></td></tr>',
footerFormat : '</table>',
valueDecimals : 2
},
series: [{
name:'取水总量',
data: data
}]
});
},
error: function(){
alert('获取失败!');
}
});
//生成表格
HighchartsToTable($("#chartPro"),$("#container"),("(单位:立方米)"));
}
下面是这篇博客的主题了,生成表格的JS文件chartToTable.js
/**
* 将Highcharts图表数据生成Table表格
* @param div 统计图表的div的Id
* @param table 要生成表格的div的Id
* @param unitName 各个统计图的单位信息
*/
function HighchartsToTable(div,table,unitName) {
//获取图表对象
var chart = div.highcharts();
if (chart != null) {
//获取X轴集合对象
var categories = chart.xAxis[0].categories;
//获取series集合
var seriesList = chart.series;
//获取标题
var title = chart.title.textStr;
//先清空原表格内容
table.html("");
//获取表格div对象
var tableObj = table;
//定义行元素<tr></tr>
var tr;
//定义表格体<table></table>
var tab;
tab = $("<table cellspacing='1' cellpadding='1' width='100%' style=\"border:solid #add9c0; border-width:1px 0px 0px 1px;text-align:center;margin: 2px;\" ></table>")
tab.appendTo(tableObj);
//第一行,放置标题
tr = $("<tr></tr>");
tr.appendTo(tab);
var td = $("<td colspan='" + categories.length + 1 + "' style=\"border:solid #add9c0; border-width:0px 1px 1px 0px; padding:5px 0px;\" >" + title +"<b style=\"font-size:14px;font-family:'Times New Roman','Microsoft YaHei';float:right\">"+unitName+"</b>"+ "</td>");
td.appendTo(tr);
//下一行,放置数据
tr = $("<tr ></tr>")
tr.appendTo(tab);
td = $("<td style=\"border:solid #add9c0; border-width:0px 1px 1px 0px; padding:5px 0px;\"></td>");
td.appendTo(tr);
for ( var i = 0; i < categories.length; i++) {
td = $("<td style=\"border:solid #add9c0; border-width:0px 1px 1px 0px; padding:5px 0px;\">" + categories[i] + "</td>");
td.appendTo(tr);
}
//分批插入数据
for ( var i = 0; i < seriesList.length; i++) {
tr = $("<tr></tr>");
tr.appendTo(tab);
//先加入一个序列名称
td = $("<td style=\"border:solid #add9c0; border-width:0px 1px 1px 0px; padding:5px 0px;\">" + seriesList[i].name + "</td>");
td.appendTo(tr);
//遍历数据点追加数据值
for ( var j = 0; j < seriesList[i].data.length; j++) {
td = $("<td style=\"border:solid #add9c0; border-width:0px 1px 1px 0px; padding:5px 0px;align:center\">" + seriesList[i].data[j].y + "</td>");
td.appendTo(tr);
}
}
} else {
alert("获取图表对象失败!");
}
}
统计图生成表格的大概思路就是,获取统计图上的数据,然后生成一个表格,在表格里遍历获取到的数据。生成的表格的样式可以单独放在style文件里,我这里还没有整理,所以全写在动态生的html里,了解了大概思路,就可以根据具体情况生成你想要的表格了。具体样式如下。(部分有关系统业务的地方打了马赛克,大概看个样子吧,嘻嘻)

将Highcharts图表数据生成Table表格的更多相关文章
- Java操作Jxl实现导出数据生成Excel表格数据文件
实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...
- jquery 生成table表格 部分代码
想生成上面这样的table表格先看返回数据格式 <div id="create_img_tab"></div> window.onload = functi ...
- php生成table表格
function getTable($arrTh, $arrTr){ $s = '<table class="tbData">'; $s .= '<tr>' ...
- 数据库数据生成Excel表格(多用在导出数据)
最近在项目开发中遇到这样一个需求,用户聊天模块产品要求记录用户聊天信息,但只保存当天的,每天都要刷新清空数据,但聊天记录要以Excel的形式打印出来,于是就引出了将数据库的数据导出成Excel表格的需 ...
- Java使用poi从数据库读取数据生成Excel表格
想要使用POI操作以xsl结尾的Excel,首先要下载poi相关的jar包,用到的jar有: poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.j ...
- Java导出数据生成Excel表格
事先准备: 工具类: package com.wazn.learn.util.export; import java.sql.Connection; import java.sql.DriverMan ...
- VUE动态生成table表格(element-ui)(新增/删除)
(直接复制即可测试) 结构(红色部分 data/prop/v-model 数据绑定): <template> <el-table size="small" :da ...
- python生成html表格
最近做一个小工具,需要将统计数据生成html表格.在网上搜罗一圈后发现用pandas生成表格非常好用.代码如下: import pandas as pd def convertToHtml(resul ...
- jQuery HighchartsTableHTML表格转Highcharts图表插件
版权申明jQuery HighchartsTable 由 PMSIpilot 创建,中文使用文档由Highcharts中文网发布本文由Theo.红烧鸡翅膀.Mr.Zhang 翻译整理,版权归Highc ...
随机推荐
- [国家集训队]Crash的数字表格
Description: 求$ \sum_{i=1}^n \sum_{j=1}^m lcm(i,j) $ Hint: $ n,m<=10^7 $ Solution: 这题有每次询问 \(O(n) ...
- Redis管道理解
Redis管道理解 简介 管道并不是Redis本身提供的功能,通常是客户端提供的功能: 管道就是打包多条无关命令批量执行,以减少多个命令分别执行消耗的网络交互时间(TCP网络交互),可以显著提升Red ...
- linux命令(及解压tar.gz文件)
https://wenku.baidu.com/view/f5805017866fb84ae45c8df3.html 1.压缩命令: 命令格式:tar -zcvf 压缩文件名.tar.gz ...
- look-into-oracle-redo
https://fritshoogland.wordpress.com/2018/02/05/a-look-into-oracle-redo-part-2-the-discovery-of-the-k ...
- Profiling Java Application with Systemtap
https://laurent-leturgez.com/2017/12/22/profiling-java-application-with-systemtap/ https://myaut.git ...
- centos npm 安装后 command not found
ok,
- windows Server 2008 R2 IE增强安全配置正在阻止来自下列网站的内容
1.在windows Server 2008 R2上访问百度,会出现以下界面 当在Windows Sever 2008 R2中运动IE8的时候会发现默认情况下IE启用了增强的安全配置,为了方便而且是在 ...
- Ubuntu安装使用SS客户端上网
1.安装shadowsocks sudo apt-get install python-pip pip install shadowsocks 以上代码用root执行效果较好 查找shadowsock ...
- art.template 循环里面分组。
后台提供给我们一个数组,我们要用模版实现上面的格式输出怎么版呢? 下面就是解决方案: <h2>循环4个一组</h2> <script type="text/ht ...
- linux 使用ifstat查看网络使用情况
首先安装ifstat wget http://distfiles.macports.org/ifstat/ifstat-1.1.tar.gz tar xzvf ifstat-1.1.tar.gz cd ...