[]
        
(Showing Draft Content)

分组小计

有时,表单中的数据量非常庞大,因此很难对其进行分析。在这种情况下,可以应用outline将已排序的数据组织到组中。分组数据可以折叠或展开,以隐藏或显示特定的组。通过将小计应用于分组的值,还可以从大纲数据中获得有意义的和总结的见解。

在GcExcel中,您可以应用分组小计来将已排序的数据组织到组中,并在每个组的末尾显示小计。

创建分组小计

分组小计是使用 IRange 接口的 subtotal 方法创建的。该方法提供了不同的参数来按字段分组、分配小计函数、替换现有小计、添加分页符和放置摘要数据。


以下示例数据用于创建分组小计:

IWorksheet worksheet = workbook.getWorksheets().get(0);

// Defining data in the range
worksheet.getRange("A1:C20")
        .setValue(new Object[][] { { "Item", "Units", "Unit Price" }, { "Pen Set", 62, 4.99 },
                { "Binder", 29, 1.99 }, { "Pen Set", 55, 12.49 }, { "Binder", 81, 19.99 },
                { "Pen Set", 42, 23.95 }, { "Pencil", 35, 4.99 }, { "Desk", 3, 275 }, { "Desk", 2, 125 },
                { "Pencil", 7, 1.29 }, { "Pen Set", 16, 15.99 }, { "Pen", 76, 1.99 }, { "Binder", 28, 8.99 },
                { "Binder", 57, 19.99 }, { "Pen", 64, 8.99 }, { "Pencil", 14, 1.29 }, { "Pen", 15, 19.99 },
                { "Binder", 11, 4.99 }, { "Pen Set", 96, 4.99 }, { "Binder", 94, 19.99 } });

请参阅下面的示例代码以创建分组小计。

IWorksheet _worksheet = workbook.getWorksheets().get(0);

// Sort by value, use Sort() method.
_worksheet.getRange("A2:C20").sort(_worksheet.getRange("A2:A20"), null, SortOrientation.Columns);

// Create groups and sub-total the grouped values using Subtotal() method
_worksheet.getRange("A1:D20").subtotal(1, ConsolidationFunction.Sum, new int[] { 2, 3 });

// Save workbook
workbook.save("391-CreateSubtotals.xlsx", SaveFileFormat.Xlsx);

Outline subtotal

移除分组小计

可以使用IRange接口的removeSubtotal方法来移除分组小计。


请参考下面的示例代码来移除分组小计。

Workbook workbook = CreateSubtotals();
IWorksheet _worksheet = workbook.getWorksheets().get(0);

// Remove Subtotals, pass the cell range inclusive of the subtotal/total rows
_worksheet.getRange("A1:C26").removeSubtotal();

// Save workbook
workbook.save("392-RemoveSubtotals.xlsx", SaveFileFormat.Xlsx);