[]
        
(Showing Draft Content)

过滤

在使用表单时,快速、高效地分析、操作和管理大量数据往往变得非常困难。

应用过滤不仅可以帮助您查看必要的信息,还可以隐藏其余的数据。在工作表上设置特定过滤条件时,只有最相关的记录(行)才会在特定列中显示与特定条件匹配的记录。

在GcExcel Java中,过滤可以应用于选定的数据范围。例如,可以应用范围从D3到I6的数字过滤,以仅显示列包含数字数据的行。

在工作表中执行不同的过滤操作时,可以使用多种类型的区域过滤器。

创建无条件过滤

GcExcel允许您使用IRange.AutoFilter创建无条件的过滤。如果工作表中没有设置任何筛选条件,该方法将创建一个空的筛选。您还可以通过传参的方式为特定字段创建筛选器。


//Create filters without condition
worksheet.getRange("A1:F7").autoFilter();  

数字过滤

要应用数字过滤器,在包含数字数据的列上显示符合指定条件集的数据,请参阅以下代码示例。

// Apply number filter
worksheet.getRange("D3:I6").autoFilter(0, "<>2");

多选过滤

要应用多选筛选器来基于多个选择过滤单元格值的数据,请参考以下示例代码。

// Apply filter condition - multi select
worksheet.getRange("A1:E5").autoFilter(0, new Object[] { "$2", "$4" }, AutoFilterOperator.Values);

文本过滤

要应用文本筛选器以显示单元格值与指定的文本或正则表达式值匹配的行,则可参考以下示例代码。

// Apply filter condition - begin with "a".
worksheet.getRange("D3:I9").autoFilter(1, "a*");

日期过滤

要将日期筛选器应用于一系列单元格,仅显示落在特定日期范围内的结果,请参考以下示例代码。

// Apply filter using Date criteria
String criteria1 = new GregorianCalendar(1972, 6, 3).getTime().toString();
String criteria2 = new GregorianCalendar(1993, 1, 15).getTime().toString();
// Filter date between 1972.7.3 and 1993.2.15
worksheet.getRange("A1:F7").autoFilter(2, ">=" + criteria1, AutoFilterOperator.And, "<=" + criteria2);

动态日期过滤

要应用动态日期过滤器,根据每天自动更新的当前系统日期显示符合指定日期条件的结果,请参阅以下代码示例。

// Apply filter condition - filter by yesterday
worksheet.getRange("D7:F18").autoFilter(2, DynamicFilterType.Yesterday, AutoFilterOperator.Dynamic);

单元格颜色过滤

要在显示具有不同填充阴影的单元格的结果的列上应用按单元格颜色的过滤器,请参阅以下代码示例。

// Apply filter by cell color
worksheet.getRange("A1:A6").autoFilter(0, Color.FromArgb(255, 255, 0), AutoFilterOperator.CellColor);

不填充过滤器

要对列应用不填充过滤器,以便根据没有填充颜色的单元格过滤结果,请参阅以下代码示例。

// Apply filter by no fill
worksheet.getRange("A1:A6").autoFilter(0, null, AutoFilterOperator.NoFill);

按图标过滤

要应用通过单元格中具有特定图标过滤结果的按图标过滤,请参阅以下示例代码。

// Apply filter by icon
worksheet.getRange("A1:A10").autoFilter(0, workbook.getIconSets().get(IconSetType.Icon5ArrowsGray).get(0),AutoFilterOperator.Icon);

无图标过滤

要在单元格没有图标的情况下应用显示结果的无图标过滤器,请参阅以下示例代码。

// Apply filter by no icon 
worksheet.getRange("A2:A10").autoFilter(0, null, AutoFilterOperator.NoIcon);

移除过滤

如果要在移除过滤的话,请参阅如下示例代码

worksheet.setAutoFilterMode(false);