如何在jxls模板中对非连续单元格求和

时间:2010-09-09 09:36:26

标签: java excel templates jxl

我正在使用从Oracle数据库获取的数据从模板创建xls报告。我有一个小组和一个小组。在子组中,我创建一个表格,显示PREMIUM值,然后使用:

显示总计
$[SUM(I18)]

因为这里的值是连续的,所以这个公式被转换为SUM(I18:I35)。

显示所有子组后,我想显示子组中所有PREMIUMS的总数,为此我使用:

$[SUM(I21)]

jxls足够智能将其转换为SUM(I36,I46,I67,...)这就是我遇到问题的地方。关于可以将多少参数传递给SUM函数存在一些限制。任何想法如何在xls模板中对集合进行SUM?

我的模板如下:

<jx:forEach items="${group.items}"  groupBy="client">     
 <jx:forEach items="${group.items}"  groupBy="contract">    
  <jx:forEach items="${group.items}" var="result">   
  PREMIUM  
  ${result.premium}  
  </jx:forEach>  
 Group Total $[SUM(I18)]  
 </jx:forEach>   
 Total $[SUM(I20)] // This is where the problem
                   // is because Group Total are not consecutive 
</jx:forEach> 

我也试过了:

 ${group.items.premium}
 Total $[SUM(I22)]

并隐藏了$ {group.items.premium}中的行,但是当生成模板时,它会取消隐藏行...

如果您使用jsxl教程或类似的东西知道一个好资源,请在此处发布。我真的很难找到下降的东西......

1 个答案:

答案 0 :(得分:1)

会为你使用jxls聚合工作吗?

即。 $ {sum(premium):group.items} //汇总每个“客户”组中的所有保费

<jx:forEach items="${group.items}"  groupBy="client">     
 <jx:forEach items="${group.items}"  groupBy="contract">    
  <jx:forEach items="${group.items}" var="result">   
  PREMIUM  
  ${result.premium}  
  </jx:forEach>  
 Group Total $[SUM(I18)]  
 </jx:forEach>   
 ${sum(premium):group.items} 
</jx:forEach>