实现Excel的小计function

Excel从菜单Data – > Outline – > Subtotal提供了小计选项。 它自动创build子数据和折叠数据的可能性。 下面的图片演示了如何操作转换工作表。

在这里输入图像说明

而这正是我通过POI需要做的。 我知道如何设置一个小计function到一个单元格,所以我可以自己计算中间款项。 但是,如何在左边框上启用折叠?

我意识到有groupRow()方法,但是这些嵌套组不能像他们应该。 如果我使用下面的代码,我只得到两个组。 一大(1-7)和(1-3)。 组(5-7)缺失,更改通话顺序不起作用。

 sheet.groupRow(1, 7); sheet.groupRow(1, 3); sheet.groupRow(5, 7); 

我使用了一个相当老的POI版本,但是我是这么做的:
我还需要多个嵌套组,所以我有一个存储缩进级别的行的模型(这是一个树,所以缩进是隐含的)。 我用游客遍历模型来获取组的开始和结束行号。 然后为每个组调用HSSFSheet.groupRow 。 如果我没有记错的话,组呼的顺序是很重要的。

我想这正是你正在寻找的:

http://www.mysamplecode.com/2011/10/apache-poi-excel-row-group-collapse.html

如果使用subtotal(9,<range>)而不是sum(<range>) ,则可以执行嵌套组,因为小计会忽略其范围中的小计