LXLS 2.4.0 简介
jxls2.4 是java对excel操作的工具包,可以很方便的实用模板输出excel,根据xml配置读取excel内容。
对比jxls1 现在的版本使用批注的模式运行指令,可以支持excel中使用公式,07的excel。官网
使用:
maven中添加依赖
org.jxls
jxls
2.4.5
org.jxls
jxls-poi
1.0.15
org.jxls
jxls-jexcel
1.0.7
导出EXCEL
基础介绍
使用批注的模式编写指令
需在excel的第一个单元格指定整个模板的范围
单元格中取值与el表达式类似使用${}来访问传入的变量
指令中需要访问对象则不需要使用${} 直接访问即可,需用""包裹
常用指令说明:
jx:each 循环
示例:jx:each((items="employees" var="employee" lastCell="D4" area="[A4:D4]" select="employee.payment > 2000"))
参数说明:
参数名称
示例
必填
说明
items
items="employees"
必填
循环的集合对象
var
var="employee"
必填
循环中的变量名,指定之后区域内可以使用该名称访问属性
lastCell
lastCell="D4"
必填
指令对应的结束位置
direction
direction ="RIGHT"
输出的方向向下(DOWN)或向右(RIGHT),默认为DOWN
area
areas=["A8:F8","A13:F13"]
循环的区域,一次循环多行则需要填写,可以指定多个区域使用逗号分隔
select
select="employee.payment>2000"
过滤条件,不需要通过${}来取值
groupBy
groupBy ="name"
jx:each(items="employees" var="nameGroup" groupBy="name" groupOrder="asc" lastCell="D7")依据employee中name进行分组,分组后的集合可通过nameGroup.items来获取,官网示例中后面还有一个each指定的items就是nameGroup.items
groupOrder
groupOrder ="asc"
指定分组排序(‘desc’ or ‘asc’)
multisheet
multisheet ="sheets"
循环的sheet名称集合,指定后会产生多个sheet,指定后each的维度会变为sheet,不需要指定area
shiftMode
shiftMode ="adjacent"
adjacent指定后通过添加行的方式向指定方向输出,inner:则为通过添加单元格的方式向指定方向输出,默认为inner
cellRefGenerator
?
?
不指定shiftMode ="adjacent"的效果
jx:if 条件判断
示例:jx:if(condition="department.chief.name != '