将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 ...
随机推荐
- [POI2018]Pionek
[POI2018]Pionek 题目大意: 在无限大的二维平面的原点放置着一个棋子.你有\(n(n\le2\times10^5)\)条可用的移动指令,每条指令可以用一个二维整数向量表示.请你选取若干条 ...
- 在iOS端如何使用Charles用作http调试
转:http://blog.csdn.net/messageloop3/article/details/9966727 在iOS端如何使用Charles用作http调试 After noticing ...
- ASP.NET Core中使用Razor视图引擎渲染视图为字符串(转)
一.视图渲染说明 在有些项目需求上或许需要根据模板生产静态页面,那么你一样可以用Razor语法去直接解析你的页面从而把解析的页面生成静态页,这样的使用场景很多,不限于生成静态页面,视图引擎为我们提供了 ...
- 马斯克:有62%的程序员认为人工智能会被武器化 #精选AR人工智能算法
当地时间 9 月 13 日,马斯克在自己的个人推特账号上转推了一篇名为<Hackers Have Already Started to Weaponize Artificial Intellig ...
- SQL Server连接错误1326
全新的SQL Server 2017,在2018年末才安装上,不过使用它来管理并不复杂的几张表,占用相对较多服务器资源,确实是有些大材小用. 无论如何,安装还是比较顺利.记得2012年第一次安装SQL ...
- C#中使用log4net框架做日志输出
一.用法 1.引入包:https://www.nuget.org/packages/log4net/ 2.Main函数 using System; using System.IO; using log ...
- (原)MobileNetV2
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9410574.html 论文: MobileNetV2: Inverted Residuals and ...
- 大型互联网架构概述 关于架构的架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE
大型互联网架构概述 目录 架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE 本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置 ...
- awk学习[参考转载]
一.基本示例 1.last -n 5 | awk '{print $1}' $0代表全部 2.last -n 5 | awk -F: '{print $1}' -F代表设置分割符, :代表 ...
- 海量数据拆分到nosql系统的一种方案
获取某用户的好友最新动态. 我们大体上来说先按照用户ID将用户的好友一致性哈希到几个mongodb集群,然后把用户的最新信息也存储到mongodb中.然后利用消息系统保持数据库中的数据和mongdb中 ...