表结构:
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>
到这里就已经算是完成了
分享到:
相关推荐
模板中的某些单元格可以标记为动态内容,这些内容会在导出过程中被数据填充。 3. 配置映射:编写XML配置文件,定义数据字段与Excel模板单元格之间的映射关系。这一步骤确保了数据能正确地填充到模板的正确位置。 4...
【正文】 在IT行业中,数据处理和导出是常见的需求,尤其在企业级应用中,报表和数据分析至关重要。...通过理解并熟练运用jxls,你可以轻松地处理各种复杂的数据导出任务,提升工作效率,满足企业的报表需求。
在Java开发中,导出Excel是一项常见的需求,用于数据报表的生成和分享。JXLS是一个强大的库,它简化了这个过程,允许开发者利用现有的Excel模板来动态生成数据。本示例将详细介绍如何使用JXLS来实现Excel的导出。 ...
在IT行业中,数据处理和展示是一个重要的任务,Excel作为广泛使用的表格工具,常被用于数据分析和报告生成。而Java作为一种强大的后端开发语言,有着丰富的库和框架来处理Excel相关的操作。这里我们将深入探讨`jxls-...
在IT行业中,数据的展示和分析常常离不开Excel报表的运用,尤其在企业级应用中,高效、灵活的数据导出功能显得尤为重要。本项目专注于解决这一问题,通过使用`jxls2`库,能够实现复杂Excel模板的导出,包括单元格的...
在IT行业中,生成灵活的Excel导出是许多应用程序的核心需求,尤其在数据分析、报表生成以及数据交换场景下。本文将详细介绍如何使用JXLS库结合Excel模板来实现这一功能。 JXLS(Java Excel Library)是一个强大的...
在Java代码中,使用jxls提供的API来读取模板文件,加载数据源,然后将数据应用到模板上,生成最终的Excel文件。例如,可以使用`JxlsHelper.getInstance().processTemplate()`方法来完成这个过程。 在项目案例中,...
在本教程中,我们将深入探讨如何使用SpringBoot与JXLS库进行集成,以实现Excel文件的导入和导出功能。这是一个非常实用的功能,尤其在处理大量数据时,如批量用户注册、数据迁移或者数据分析等场景。让我们一起探索...
`jxls`扩展了POI的功能,使得我们可以使用类似于JSP的语法来定义Excel模板,然后通过Java代码动态填充这些模板,生成复杂的Excel表格。 在"jxls例子"中,我们可以看到如何利用`jxls`进行实际操作。首先,你需要创建...
- **样式和公式**:jxls支持在模板中使用Excel内置的样式和公式,这些将在导出时保留。 - **错误处理**:在处理过程中可能会遇到数据类型不匹配、模板格式错误等问题,需要进行适当的错误处理和日志记录。 总之,...
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
这个示例展示了如何使用jxls导出包含多个表格和复杂逻辑的Excel文件。通过对示例的分析,你可以了解如何组织模板,以及如何在Java代码中处理这些模板。 6. **优化与扩展** jxls还支持更多的功能,如公式计算、多...
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
在IT行业中,数据处理和报告生成是常见的需求,特别是当需要将大量数据导出为易于查看和分析的格式时,Excel表格成为了首选。而`jxls`正是一个Java库,它提供了一种高效、灵活的方式来利用模板生成Excel文件,极大地...
在导出时,它将Java对象的数据填充到模板中,生成新的Excel文件。 2. **共通方法** 共通方法通常是指可以在多个导入导出场景下复用的函数。例如,可以创建一个`importData()`方法来读取Excel文件并映射到Java对象...
Java Web使用Jxls导出Excel功能是一项常见的需求,特别是在数据报表和数据分析的场景下。Jxls是一个Java库,它提供了一种方便的方式来处理和导出Excel文件,无需编写复杂的Java代码来操作每一个单元格。本篇文章将...
一.JXLS简介 ,安装,以及标签使用说明 Each数据循环、公式使用、if-else逻辑判断、加载图片、动态表格、数据分组、单元格超链接、SQL模板实现、自定义表达式解析引擎、自定义函数、单元格合并
jxls使用简单,只需定义一个excel模板,在excel中使用jx公式即可轻松实现,具体可查看项目,运行Application.java的main方法即可启动项目,访问htpp://localhost:8080/member/user/userExport即可导出数据生成excel...
JXLS提供了API来控制这些格式,允许你在导出数据时按照需要呈现,从而生成专业且易于阅读的报表。 在描述中提到的"测试点"表明,JXLS 2.4.0在发布之前经过了严格的测试,确保了其在实际应用中的稳定性和可靠性。...