博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四章——Each命令
阅读量:6566 次
发布时间:2019-06-24

本文共 1566 字,大约阅读时间需要 5 分钟。

  hot3.png

1    介绍

Each命令用于迭代集合,克隆命令XlsArea。类似于Java语言的for操作符。

2    命令属性

Each命令有以下属性:

  • var:迭代时,将集合中的每个条目放入Context中的那个键上。
  • items:要迭代的集合在Context中的键值。
  • area:Each命令体的XlsArea。
  • direction:Direction枚举,有效值是DOWN和RIGHT,表示如何(通过行或列)重复命令体。默认为DOWN。
  • select:迭代过程中过滤集合条目的选择表达式。
  • groupBy:分组属性。
  • groupOrder:分组排序方式(‘desc’或‘asc’)。
  • cellRefGenerator:是否创建目标单元格引用的自定义策略。
  • multisheet:Context中sheet名称列表的键。
  • lastCell:命令指向的最后一个单元格。

var和items是必须的。

3    构建命令

3.1    使用Java API构建

// 创建Transformer和departments集合// ...// 创建department XlsAreaXlsArea departmentArea = new XlsArea("Template!A2:G13", transformer);// 创建Each命令迭代departments集合,链接到departmentAreaEachCommand departmentEachCommand = new EachCommand("department", "departments", departmentArea);

3.2    使用Excel标记构建

为了使用Excel标记创建Each命令,在命令体区域开始单元格的注释中使用特殊语法:

jx:each(items="employees" var="employee" lastCell="D4")

因此,我们使用jx:each和括号中空格隔开的命令属性。lastCell属性定义命令的XlsArea体的最后一个单元格。

3.3    使用XML配置构建

为了使用XML配置创建Each命令,使用以下标记:

ref属性定义Each命令相关的区域。内部区域定义Each命令体。通常是相同的。

4    复制方向

默认,Each命令direction属性设置为DOWN表示命令体基于Excel行向下克隆。

如果你需要通过列克隆区域,应该设置属性值为RIGHT。

Java API通过以下方式设置:

//... 创建EachCommand迭代departments// 设置direction为RIGHTdepartmentEachCommand.setDirection(EachCommand.Direction.RIGHT);

5    分组数据

Each命令支持通过groupBy属性分组。groupOrder属性设置排序方式,有效值为desc或asc。

jx:each(items="employees" var="myGroup" groupBy="name" groupOrder="asc" lastCell="D6")

在例子中,每个组可以使用myGroup引用。

当前组条目可以使用myGroup.item引用。因此,可以使用以下方式引用员工姓名:

${myGroup.item.name}

通过items属性访问分组中的所有条目:

jx:each(items="myGroup.items" var="employee" lastCell="D6")

你也可以跳过var属性,默认组变量名称为_group。

转载于:https://my.oschina.net/leeck/blog/1845852

你可能感兴趣的文章
关于在线代码运行网站的一个想法
查看>>
我的友情链接
查看>>
使用subeclipse来管理分支/标记
查看>>
我的友情链接
查看>>
django forms模块使用
查看>>
FreeBSD IPFW 防火墙的安装和设置
查看>>
Linux分区和文件系统 ⑥
查看>>
ClipDrawable--水漫起来的效果
查看>>
osd内的pg数量
查看>>
shell脚本与mysql交互方法汇总
查看>>
Cron 表达式详解和案例
查看>>
Android - 软件自动更新的实现
查看>>
oracle数据库远程不落地导入本地数据库
查看>>
Unix调试的瑞士军刀:lsof(转)
查看>>
dns相关内容
查看>>
JavaScript骚操作
查看>>
MySQL的主从复制与读写分离原理
查看>>
luaCPU性能测试
查看>>
mysql优化
查看>>
【批处理】for循环中产生不同的随机数
查看>>