Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JXLS公式未按指定字段分组输出_Java_Excel_Jxl_Jxls - Fatal编程技术网

Java JXLS公式未按指定字段分组输出

Java JXLS公式未按指定字段分组输出,java,excel,jxl,jxls,Java,Excel,Jxl,Jxls,我正在创建一个报告,我需要将我的数据结构输出到excel电子表格。为此,我使用JXLS,但在创建jx公式以正确输出数据时遇到了问题 我有一份个人类型列表: List<Person> people = new ArrayList<Person>(); 我希望它在Excel中按年龄分组显示。例如: Age 18: Name: Joseph Age: 18 Pets: Dog, Cat ----------------

我正在创建一个报告,我需要将我的数据结构输出到excel电子表格。为此,我使用JXLS,但在创建jx公式以正确输出数据时遇到了问题

我有一份个人类型列表:

 List<Person> people = new ArrayList<Person>();
我希望它在Excel中按年龄分组显示。例如:

Age 18:
      Name: Joseph
      Age: 18
      Pets: Dog, Cat
      ----------------
      Name: Tommy
      Age: 18
      Pets: Dog, Fish

Age 19:
      Name: Sally
      Age: 19
      Pets: Bird, Dog
到目前为止,我得到的是:

<jx:forEach items="${personsList}" var="person"> groupBy="${person.age}"                
Name :   ${person.name}
Age  :   ${person.age}          
<jx:forEach items="${person.listOfPets}" var="pets">                
Pets :  ${pets.type},
</jx:forEach>               
</jx:forEach>   
上面确实输出了正确的数据,但没有按年龄分组。。。它显示为一个大的重复年龄列表?如何将其分组到特定年龄下的所有人?

您应该使用groupBy=age,而不是groupBy=${person.age},如中所述


但是,战略建议是使用及其进行分组,而不是使用不受支持的传统Jxls-1。

您是否仔细阅读了Jxls库文档?我没有时间帮你弄清楚,但那是开始的地方。如果JXLS库没有您需要的特性,您可以考虑寻找另一个库。我已经多次通过文档,我认为GROMPBY会起作用。但不幸的是,它没有达到我预期的效果,而且没有太多的示例可以使用。我过去使用过其他Excel库,在这些库中,您可以逐个单元格构建Excel文档。如果您找到一个这样工作的,或者如果这个这样做了,您可以通过编程方式而不是依赖内置功能来执行组。有库建议吗?没有具体的建议,而且我无法立即找到我使用过的库的名称。不过应该有很多。简单的东西可能就行了,除非你的作业的其他规范变得太复杂。在我看来,当v1.x比v2.x更有用、更智能时,不要理解这个建议:
Age 18:
      Name: Joseph
      Age: 18
      Pets: Dog, Cat
      ----------------
      Name: Tommy
      Age: 18
      Pets: Dog, Fish

Age 19:
      Name: Sally
      Age: 19
      Pets: Bird, Dog
<jx:forEach items="${personsList}" var="person"> groupBy="${person.age}"                
Name :   ${person.name}
Age  :   ${person.age}          
<jx:forEach items="${person.listOfPets}" var="pets">                
Pets :  ${pets.type},
</jx:forEach>               
</jx:forEach>