如何配置jxls API来读取excel表格,因为我不知道编译时的行数。
什么是环路中断条件。
不能jxls找出在excel表格中有多少行有有效数据,并读取到那里。
有什么替代方案吗?
参考http://jxls.sourceforge.net/reference/reader.html
发布于 2016-08-30 18:48:06
您可以指定一个空值作为循环中断条件
<loopbreakcondition>
<rowcheck offset="0">
<cellcheck offset="0"></cellcheck>
</rowcheck>
</loopbreakcondition>这将进行循环,直到找到一个空单元格作为最后一次有效传递后下一行(offset=0 on rowcheck)中的第一个单元格(offset=0 on cellcheck)。可以使用offset属性更改不能为空的单元格或行。
rowcheck元素可以包含任意数量的cellcheck元素。在我的例子中,input Excel中没有一个单元格是强制的,所以我为行中的每个单元格指定了一个空的cellcheck元素。
示例(假设一行中有3个单元格)
<loopbreakcondition>
<rowcheck offset="0">
<cellcheck offset="0"></cellcheck>
<cellcheck offset="1"></cellcheck>
<cellcheck offset="2"></cellcheck>
</rowcheck>
</loopbreakcondition>含义:
如果下一行中的所有单元格都为空,则
停止循环。
在某些单元格要求不为空的情况下,您可以通过只包含所需的单元格来简化上述中断条件。
示例(假设一行中有3个单元格,最后一个单元格是必需的)
<loopbreakcondition>
<rowcheck offset="0">
<cellcheck offset="2"></cellcheck>
</rowcheck>
</loopbreakcondition>含义:
如果下一行的第三个单元格为空,则
停止循环。
发布于 2012-03-07 12:38:36
使用此链接http://www.mail-archive.com/jxls-user@lists.sourceforge.net/msg00094.html
基本上,您只需定义光标的开始位置。
<loop startRow="7" endRow="7" items="department.staff" var="employee" varType="net.sf.jxls.sample.model.Employee">
<section startRow="7" endRow="7">
<mapping row="7" col="0">employee.name</mapping>
<mapping row="7" col="1">employee.age</mapping>
<mapping row="7" col="3">employee.payment</mapping>
<mapping row="7" col="4">employee.bonus</mapping>
</section>
<loopbreakcondition>
<rowcheck offset="0">
<cellcheck offset="0">Employee Payment Totals:</cellcheck>
</rowcheck>
</loopbreakcondition>
</loop>这将从第7行读取所有记录,直到循环中断条件为reached.The,endRow值在这里略有混淆,但循环中断是由loopbreak条件而不是endRow值控制的。
https://stackoverflow.com/questions/7206288
复制相似问题