jxls操作excel文件

J2SE - Jxls 2.x 模版导出 Excel 示例 一、说明 Jxls 2.x 和 1.x 有很大的差异: 表达式从类似JSTL的模式,改为了直接在单元格中插入批注的方式来声明 新增了区域的概念,用来定义整个模板中所需要解析的表达式的所在范围,且只能声明在A1单元格内 二、依赖 <!-- Jxls的基础库 --> <dependency> <groupId&... 阅读详情

jxls操作excel文件

标签: jxlsexcel模板示例
  14369人阅读  评论(2)  收藏  举报
  分类:

        JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单!

        JXLS软件首页:http://jxls.sourceforge.NET/,SVN源码地址:svn://svn.code.sf.Net/p/jxls/code。

        使用JXLS生成Excel文件相对较为简单,只需要一个Excel模板和几行代码即可。Excel模板的内容也比较简单,主要是运用标签及集合函数。

        JXLS的标签比较常用的有以下几个:

        (1) jx:forEach,注意大小写,用于迭代,属性有两个,一个是items,一个是var,其作用、含义和用法与jstl一致;

        (2) jx:if,逻辑判断,有一个属性,即test,其作用、含义和用法与jstl一致。

        集合函数有以下几个:

        (1) sum,求和;

        (2) min,取最小;

        (3) max,取最大;

        (4) ave,求均值;

        (5) count,取数量。

        JXLS有一个比较大的优势——你可以先设计好Excel的样式,再插入JXLS的标签,最终生成的Excel跟你的设计一模一样——这与POI不同,POI通常要求我们在Java代码中进行样式和字体的设计。

        JXLS还有一个特点——你可以直接使用Excel自带的函数。


        且看以下模板:



        首先这是一个Excel文件,后缀为xls或xlsx,它与普通Excel文档的不同在于,这里面加入了很多标签。

        首先是jx:forEach,如果把上图看作一个jsp文件,或许我们会更容易理解一些——迭代reports对象,它可能是一个List或数组,然后分别取出reports中,对象的id、businessType、unaccept等属性的值,分别显示在A列、B列、C列等。

        标签会被怎么处理?会不会使得最终生成的Excel文件有一个空行或空列?不会,JXLS在生成Excel时,会把含有标签的那一行删除,你当它不存在就行了。

        接着来看jx:if,相当简单的一个判断,还是把它当jsp来看,很容易理解。

        $[and(c3)]、$[count(c3)],这是上文提到过的集合函数吗?不是的,这是Excel自带的函数,在Excel中,我们用类似“=and(c3:38)”或“=count(c3:c8)”来计算值,而在JXLS中,这些函数的用法变为$[函数名(列)],为什么在Excel中的“(c3:c8)”变成了“(c3)”呢?因为上图中的C3在jx:forEach中,它代表的已经不是第3行第C列,而是jx:forEach生成的所有行中的第3列。

        JXLS提供的集合函数怎么使用?——${count(businessType):reports},表示使用的是JXLS中的count函数,统计reports对象(List或数组)中,对象的businessType的数量,其实,相当于reports数组或对象的长度了。

        JXLS提供的集合函数是用大括号括起来的,而Excel自带的函数是用中括号括起来的,Excel自带的函数只需要指定列即可,JXLS提供的集合函数需要指定对象、指定属性。


        模板和Java代码怎么对应呢?下文是示例:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /** 
  2.  *  
  3.  */  
  4. package com.geloin.jxls.main;  
  5.   
  6. import java.util.ArrayList;  
  7. import java.util.HashMap;  
  8. import java.util.List;  
  9. import java.util.Map;  
  10.   
  11. import com.geloin.jxls.beans.Report;  
  12.   
  13. import net.sf.jxls.transformer.XLSTransformer;  
  14.   
  15. /** 
  16.  * @author Geloin 
  17.  *  
  18.  */  
  19. public class ReportTest {  
  20.   
  21.     /** 
  22.      * @param args 
  23.      */  
  24.     public static void main(String[] args) throws Exception {  
  25.         String tplPath = "d:/work/proTmp/jxls/补换领业务统计报表模板.xlsx";  
  26.         String destPath = "d:/work/proTmp/jxls/补换领业务统计报表.xlsx";  
  27.   
  28.         List<Report> reports = new ArrayList<Report>();  
  29.         Report r1 = new Report(1, "补领机动车行驶证", 1L, 2L, 3L, 4L, 5L, 6L);  
  30.         reports.add(r1);  
  31.   
  32.         Report r2 = new Report(2, "换领机动车行驶证", 11L, 21L, 31L, 41L, 51L, 61L);  
  33.         reports.add(r2);  
  34.   
  35.           
  36.         Map<String, List<Report>> beanParams = new HashMap<String, List<Report>>();  
  37.         beanParams.put("reports", reports);  
  38.         XLSTransformer former = new XLSTransformer();  
  39.         former.transformXLS(tplPath, beanParams, destPath);  
  40.     }  
  41.   
  42. }  

        显示,最下面四行是生头戏,确切的来说,最下面一行是重头戏,流程其实很简单——指定模板位置和生成的文件的位置,然后生成数据,并把数据置入到一个Map里,Map的key对应于模板中用到的对象,最后用transformXLS直接生成Excel文件。

顶
0
踩
0
 
 
我的同类文章

参考知识库

img
.NET知识库

img
Java SE知识库

img
Java EE知识库

img
Java 知识库

猜你在找
Excel高端应用:多条件约束报表自动统计与制作
Excel报表管理利器
ActiveReports 报表三小时入门视频
JSP分页标签—DisplayTag实战视频课程
PHP面向对象设计模式
开源jxls - java导Excel多sheet - 模板文件定义类似jsp的el表达式
开源jxls - java导Excel多sheet - 模板文件定义类似jsp的el表达式
jxls使用模板生成excel文件
jxls生成Excel文件
jxls 使用模板文件导出生成excel
查看评论
2楼  lovekc 2015-07-17 15:41发表 [回复]
两个forEach 怎么处理呀,我的是通过注释写的,比如第5行一个forEach,第6行又一个forEach。最终生成的结果是:比如第一个forEach生成10条记录,第二个forEach生成10条记录,但是第6行却是一个空白行,也就是第一个forEach的一条占在第6行的记录没显示出来,其他正常。感觉是被模板中的第6行注释屏蔽掉了
1楼  coding23333 2015-01-21 14:25发表 [回复]
开源报表免费但是开发要求高,商业报表(以finereport为代表)收费但是上手操作更加简单,各取所需
SpringBoot(33) 整合JXLS实现Excel导入导出 一、前言 jxls官网:http://jxls.sourceforge.net/ 本文将基于springboot2.3.3.RELEASE去整合jxls实现excel导入导出功能 二、SpringBoot整合JXLS实现Excel导入导出 1、pom.xml中引入相关依赖 <!-- jxls导出导入读取excel报表 --> <!-- https://mvnrepository.com/artifact/org.jxls/jxls --> <dependency> 阅读详情

相关推荐

Jxls Excel读写操作与工具类使用指南

本文还有配套的精品资源,点击获取 简介:在Java开发中,"jxls"库简化了Excel文件的读写操作。本文将详细介绍如何使用jxls工具类结合XML映射文件和XLS模板文件实现复杂数据的Excel读写。示例中包括创建Excel模板、编写映射文件、初始化工具类以及读取和导出数据等功能。熟练掌握jxls可提高数据处理开发效率。 1. jxls读写工具类简介及其优势 ...

weixin_42160645的博客 1513

6、进阶之Jxls2的动态表格

http://chendd.cn/information/viewInformation/other/229.a 本章节将在导出逻辑中演示报表动态列的实现场景。本示例涉及的jxsl:grid的表达式函数,需要自行另外掌握。前文中在Each数据循环的示例中是有用到一个横向循环的实现,...

chunjing4607的博客 1936

亲友圈棋牌的逆向工程_棋牌透视分析研究(一)

透视也能实现,有些台子就自带控制,这种东西权限只是存在于平台运营者手中,即便逆向破解也很难发现,但也有那么一些棋牌 比如斗牛或者跑得快,会先发给你的内存中存放当前的牌的信息,这样你就可以知道对面的牌是什么,但肯定也是加密了。明明是zip却无法解压,这很明显是属于被加密了, 那么我们就要开始找他的加密内容,一般加密的秘钥都会存储在so里面。写这一篇文章了,其实也想了很久,最终还是决定写了, 有些朋友找我做过菠菜的逆向,bjl,甚至是足球的!但很遗憾的告诉大家,这里是找不到的。

m0_63368535的博客 5803

JXLS 2.4.0系列教程(四)——拾遗 如何做页面小计

  注:阅读本文前,请先阅读第四篇文章。   http://www.cnblogs.com/foxlee1024/p/7619845.html   前面写了第四篇教程,发现有些东西忘了讲了,这里补回来。   忘了讲两个点:   1.本页小计怎么做。   2.在多sheet时候本页小计会出现错乱,怎么解决。   本页小计就是这个东西,在导出报表时候会自动统计累加遍历出来的数据...

weixin_30512089的博客 283

Linux磁盘扩容实战:用parted命令无损扩展/data分区(附常见报错解决方案)

本文详细介绍了在Linux生产环境中使用parted命令对已挂载的/data分区进行在线磁盘扩容的完整实战流程。通过风险评估、状态检查、parted工具深度解析及实战演练,指导用户安全完成动态扩容,并提供了常见报错如'Partition is being used'、MBR 2TB限制等的解决方案,确保业务不中断、数据不丢失。

weixin_29207439的博客 296

XTDrone——无人机基于2D激光Lidar进行二维运动规划(细节提醒以及相关报错解决)

本文介绍了在Ubuntu 20.04系统无人机基于ROS Noetic实现HectorSLAM二维激光建图与运动规划的完整流程。主要内容包括:安装必要ROS依赖库;修改HectorSLAM的launch文件,解决坐标系转换问题;配置地图发布参数以避免覆盖已建地图;启动PX4仿真环境与XTDrone通信模块;最后通过2D导航目标点实现无人机运动规划。文中详细说明了各步骤的关键配置修改,并提供了处理常见错误(如TF转换超时)的解决方案。实现了从激光SLAM建图到路径规划的过程。

weixin_45390670的博客 994

jxls导出excel,使用sum函数无法求和的问题

最近在使用jxls导出excel报表,使用sum()函数进行求和时,结果显示为0,很郁闷。一番捣鼓,发现数值列的值有问题: 把鼠标放到上面,提示:此单元格中的数字为文本格式或者前面有撇号。把数值的单元格格式改为数值,求和单元格显示求和结果。真相大白!原来是这些数字的格式为文本,所以无法求和。 解决方法其实也很简单,把模板中对应的表达式*1转为数值格式即可。如: ${item.re...

mlsama的博客 7575

PPT+视频 | 详解智能营销增益模型(uplift model)

分享营销增益模型的原理和常见的建模及评估方法,并以淘票票智能票补为例介绍uplift model技术的实践经验。

阿里文娱技术 8626

jxls操作excel文件,亲测好用

转自:https://blog.youkuaiyun.com/geloin/article/details/17242523  JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单!         JXLS软件首页:http://jxls.sourceforge.net/...

www.wangpeng.cn 1298

可乐学习NVMe之一:为什么SSD需要NVMe

1. NVMe SSD 结构简图 整体来看,NVMe SSD可以分为三部分,host端的驱动NVMe Driver、PCIe+NVMe实现的控制器以及NAND Flash+DDR4/DDR5存储介质。 芯片回片后Host侧软件或者驱动开发主要在应用层,通过一些测试工具进行benchmark跑分测试,performance性能分析,latency分析、stress-testing等等: 那么,接下来阐述为什么SSD需要NVMe,并再后续的文章介绍NVMe协议分析,个人针对协议的理解,如果有不当之处,还请各

Lucky 3168

Ego Planner规划算法(下)——Ego Planner程序框架

本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程

慕羽★的博客 7257

利用jxls操作excel模板文件

利用jxls操作excel模板文件

873

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

WW、forever的博客 195

jxls操作excel文件-报表导出利器

[url]http://www.cnblogs.com/klguang/p/6425422.html[/url] [url]http://jxls.sourceforge.net/[/url] [url]http://blog.youkuaiyun.com/geloin/article/details/17242523[/url]

tang_zongyun的博客 240

OmniDrive(3):逐行代码详解

模型效果: 端到端联合规划与推理 接下来,简单介绍下训练的配置 1.1 模型配置 模型基于sparse query based的3D Bev感知框架StreamPetr ,用query来编码动态目标(如车辆、行人)和静态地图元素(如车道线)。(1) tran、test和val数据配置 指定真值的文件路径: ann_file 指定输出处理的pipeline: 训练使用, test 和val使用 指定是否需要时序训练seq_mode (2)数据处理pipeline 自定义的Dataset 通过类实现,训

@bangbang的博客 719

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java jxls_jxls教程

**在java中通常要导入导出excel文件java操作.xls的完整类库是Apache POI类库,导入包jxls-core.jarjxls-reader.jar下面的Apache类库也要求添加到项目的classpath中●POI 3.6 or higher●Commons BeanUtils●Commons Collections●Commons JEXL●Commons Logging●Co...

weixin_35924166的博客 696

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java导出excel jstl_JXLS导出excel文件示例详解|poi excel模板导出

本案例将采用JXLS导出excel文件,JXLS框架是一个模板生成excel的文件,在java excel文件导出方面比poi更加方便简单,下面我将使用jxls来导出excel数据,并通过浏览器下载excel文件,效果如图。下面我们来一起学习一下JXLS框架的使用吧,小编是将jxls整合springmvc使用的!第一步:需要在pom.xml文件中导入jxls框架的maven jar包,我导入的是j...

weixin_36345268的博客 931

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JXL(JXLS)的使用:java中操作Excel的解决方案之一

JXLS项目主页:http://sourceforge.net/projects/jxls/JXL的基本功能:● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体、数字、日期操作 ● 能够修饰单元格属性 ● 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它...

mengshuangcom的专栏 519

JXL(JXLS)的使用:java中操作Excel的解决方案之一。

摘要:本文讲述的是如何使用开源项目JXSL来对Excel及其内部的数据进行操作,本人整理汇总自网络。 JXLS项目主页:http://sourceforge.net/projects/jxls/JXL的基本功能:● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体、数字、日期操作 ● 能够修饰单元格属性 ● 支持图像和图表 应

zhoudm2005 1万+

使用JXLS导入导出Excel

1.JXLS简介 jxls是用来导入导出Excel非常方便的类库 <!-- jxls --> <dependency> <groupId>org.jxls</groupId> <artifactId>jxls-reader</artifactId> <version>2.0.2</v...

weixin_30293135的博客 194

java用POI和JXLS对Excel的导入导出

本文介绍的poi和jxls我同样我们是需要jar包的,jar包我这里直接提供一个maven的配置如下 <dependency> <groupId>org.jxls</groupId> <artifactId>jxls-poi</artifactId> <version>1.0.9</version>&...

weixin_30379911的博客 179
上一篇: PMO
下一篇: JS 异常之 missing ) after argument list 错误释疑
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值