表结构:
Mytable
(
Point varchar2 --站点
Time timestamp --时间
Value varchar2 --值
)
Db中的数据存储:
1.站点1,2012-8-1,100.0
2.站点2,2012-8-1,200.0
3.站点3,2012-8-1,250.0
4.站点1,2012-8-2,230.0
5.站点2,2012-8-2,230.0
在前台页面上显示要求做到就数据行转列,如下
时间 站点1 站点2 站点3
2012-8-1 100.0 200.0 250.0
2012-8-2 230.0 230.0 0
这个可以通过oracle的decode函数来实现,如下
Select time,
decode(point,'站点1',value,0),
decode(point,'站点2,value,0),
decode(point,'站点3',value,0)
from mytable group by time;
当然要先明确列站点1,站点2,站点3,这样做也就不满足动态列的需求了(因为这些站点都必须要求硬编码),所以这里可以采用一个存储过程,在里面根据站点分组获取到各个站点迭代可以实现真正的动态列,不过这里的需求没有这么麻烦,我们这里的动态列是通过前台直接传递过来的。所以,在mybatis配置的时候可以如下:
Select time,
<foreach var ='item' collections="items" sp..=','>
decode(point,${item},value,0),
</foreach>
from mytable group by time;
后台sql就这样
前台table展现也是循环动态列
<table>
<tr>
<td>time</td>
<foreach var="item" collection="items">
<td>${item}</td>
</foreach>
</tr>
</table>
然后通过jxsl导出,后台数据封装如下:
因为列不固定,所以数据封装使用map
List<Map> lstMap;
lstMap{
{time:xxx,col1:xxx,col2:xxx,col3:xxx},
{time:xxx,col1:xxx,col2:xxx,col3:xxx}
}
然后要做如下:
封装动态列到listList<String> lstCol;//这个不多说,前台传递过来的,前台的也是查询db获取到的
封装动态列数据值到lstMap的各个元素中去.
迭代lstMap,获取每个map中的动态列的数据后存储到list中,然后将list存储在map中
Foreach(Map map : lstMap){
List colValues= getDymicColValue(map);
map.put("colValues",colValues);
}
模版配置如下:
Time <jxl:foreach var="col" collections="lstCol">${col}</jxl:foreach>
<jxl:foreach var="item" collections="items">
${item.time} <jxl:foreach var="value" collections="item.colValues">${value}</jxl:foreach>
</jxl:foreach>
到这里就已经算是完成了
分享到:
相关推荐
OM+JXLS导出数据OM+JXLS导出数据
jxls功能的开发,关于自定义模板和数据封装,已经数据生成
使用jxls技术,自己创建Excel模板导出数据
通过jxls和poi导出excel的dome,支持2003至2013版的excel的导出。通过将数据注入的已写好的模板中导出到指定路径下。
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
jxls导出excel官方例子jxls导出excel官方例子jxls导出excel官方例子jxls导出excel官方例子
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
一个Maven项目,下载直接使用,直接找到 JxlsTest运行demo即可,功能强大,基本能满足所有报表的导出需求,支持多个Sheet导出,支持复杂的导出组合,可以自己写模板试玩下。
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
jar包 jxls方式导出excel 包含所需的jar包 java中
一.JXLS简介 ,安装,以及标签使用说明 Each数据循环、公式使用、if-else逻辑判断、加载图片、动态表格、数据分组、单元格超链接、SQL模板实现、自定义表达式解析引擎、自定义函数、单元格合并
jxls使用简单,只需定义一个excel模板,在excel中使用jx公式即可轻松实现,具体可查看项目,运行Application.java的main方法即可启动项目,访问htpp://localhost:8080/member/user/userExport即可导出数据生成excel...
1.FreeMarker整合EasyUI实现数据分页展示 2.IDEA+Springboot+gradle框架 3.Jxls导出数据到Excel 4.logback整合logstash
通过JXLS读取excel模板并导出excel。 本例仅为示例,可供大家学习参考示例。如果公司有复杂的excel模板导出要求,可以通过jxls简化导出。
jxls例子,java,excel,导入导出
JXLS将数据库取得的数据根据Excel模板导出
jxls利用模板生成excel文件, 非常方便
jxls,读取json转为excel文件导出
1、利用JXLS导入导出。 2、包含导入导出共通方法; 3、包含示例调用方法;
java web使用jxls导出excel功能,详细参考:http://blog.csdn.net/xiejx618/article/details/38906683