ExcelUtils遍历集合时获取当前的索引

关于ExcelUtils的官方文档在这里http://excelutils.sourceforge.net/UserGuide.html,用poi与struts2结合时导出excel是一种很好的方式,我们不需要再通过poi的api编码生成excel文档,只需要新建一个excel文档,然后通过一些语法取出后台传递过来的值,这个工具真的是简单,好用。

不过今天在进行excel导出时,需要输出每一行的行号,拿到这个问题,自然想到去官网去找,但是在官网只找到取出遍历的索引(从0开始),然而我需要输出序号时从1开始,我异想天开的用算术运算符加1(即${rowId+1}),可惜ExcelUtils不支持这种运算,要是ExcelUtils支持这种运算该多好(要是谁知道该怎样进行这种运算,还麻烦告诉我一下,小弟先在这里先感谢了)。

比如我们再excel中这样写道:

#foreach row in ${userList}
${row.username} ${row.nickName} ${row.lastLoginIp}
#end

如果要取出从0开始遍历的当前索引,可以这样写${rowId}, 要取出从1开始的索引,可以这样写${rowIndex},注意:Id或Index前面的row是遍历时当前对象的标识名称,也就是#foreach row in ${userList}里面的row。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 06:13:41

ExcelUtils遍历集合时获取当前的索引的相关文章

在遍历集合时是应该用for还是用foreach

为这条记录声明所匹配的 PostgreSQL 用户,值 all 表明它匹配 于所有用户.否则,它就是特定 PostgreSQL 用户的名字,多个用户名可以通过用逗号分隔的方法声明,在名字前面加上+代表匹配该用户组的所有用户.一个包含用户名的文件可以 通过在文件名前面前缀 @ 来声明,该文件必需和 pg_hba.conf 在同一个目录. 根据上面的js代码,如果页面宽度低于640px,那么页面中html的font-size也会按照(当前页面宽度/640)的比例变化.这样,页面中凡是应用了rem的作

用<forEach>遍历list集合时,提示我找不到对象的属性

<c:forEach items="${list}" var="item"> <tr> <td>${item.UserId}</td> <td>${item.UserName}</td> </tr> </c:forEach> 用<forEach>遍历list集合时,提示我找不到对象的属性.因为他封装的时候 他会主动将第一位改成大写 如果你的是 name 封装好

java集合中的一个移除数据陷阱(遍历集合自身并同时删除被遍历数据)

下面是网上的其他解释,更能从本质上解释原因:Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁. Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast 原则 Iterator 会马上抛出 java.util.ConcurrentModificationException 异常.所以 Iterator 在工作的时候是不允许被迭代的

三种形式遍历集合

对于遍历集合获取其对象,在这里总结的三种简单的方式 方式一 : 将集合变为数组,后遍历数组 Object[] obj = list.toArray(); for(Object s : obj){ System.out.println((String) s); } 方式二 :  get()方法获取 . 但只能在list集合中使用, 只有List集合才有索引值. for(int i = 0;i<list.size();i++){ System.out.println(list.get(i)); }

Knockout获取数组元素索引的2种方法,在MVC中实现

在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespace UseIndex.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } } 在HomeController中,先模拟一个Student的集合,在投影出Name属性的集合,最后以Json返回给前台视图. using Syste

【关于迭代器的for-each遍历集合现象。。。。。】

foreahc迭代集合元素的同时修改集合元素抛异常..ConcurrentModificationException异常 只要使用迭代器遍历,其他集合遍历时进行增删操作都需要留意是否会触发ConcurrentModificationException异常. 一.单线程 1. 异常情况举例 只要抛出出现异常,可以肯定的是代码一定有错误的地方.先来看看都有哪些情况会出现ConcurrentModificationException异常,下面以ArrayList remove 操作进行举例: 使用的数

java8新特性,使用流遍历集合

在这篇“Java 8新特性教程”系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章“遍历.过滤.处理集合及使用Lambda表达式增强方法”中,我已经深入解释并演示了通过lambda表达式和方法引用来遍历集合,使用predicate接口来过滤集合,实现接口的默认方法,最后还演示了接口静态方法的实现. 源代码都在我的Github上:可以从 这里克隆. 内容列表 使用流来遍历集合. 从集合或数组创建流. 聚合流中的值. 1.

OC第六节 遍历集合、数组排序

1.遍历的?式?for.枚举器.forin. ①.for循环同C语言,循环条件是集合的元素个数或键值对个数,无序的集合要先转换成数组在根据下标遍历 ②.枚举器 NSEnumerator objectEnumerator (reverseObjectEnumerator)   创建枚举器(反向枚举器) nextObject  与while循环连用,遍历集合 ③. for … in :快速枚举,是在NSEnumerator的基础上封装的更加方便的快熟便立即和元素的方式,格式如下: for (<#ty

迭代器遍历【List、Set、Map】&amp;&amp; 遍历集合的方法总结 &amp;&amp; Collections工具类

整理&&总结 迭代器遍历Iterator[List.Set.Map]example 1 package boom.collection; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.HashSet; 6 import java.util.Iterator; 7 import java.util.List; 8 import java.util.Map; 9 import jav