[]
有时,表单中的数据量非常庞大,因此很难对其进行分析。在这种情况下,可以应用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);
可以使用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);