DataFilter.Filtering.ExcelLike 1.1.4

dotnet add package DataFilter.Filtering.ExcelLike --version 1.1.4
                    
NuGet\Install-Package DataFilter.Filtering.ExcelLike -Version 1.1.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DataFilter.Filtering.ExcelLike" Version="1.1.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DataFilter.Filtering.ExcelLike" Version="1.1.4" />
                    
Directory.Packages.props
<PackageReference Include="DataFilter.Filtering.ExcelLike" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DataFilter.Filtering.ExcelLike --version 1.1.4
                    
#r "nuget: DataFilter.Filtering.ExcelLike, 1.1.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DataFilter.Filtering.ExcelLike@1.1.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DataFilter.Filtering.ExcelLike&version=1.1.4
                    
Install as a Cake Addin
#tool nuget:?package=DataFilter.Filtering.ExcelLike&version=1.1.4
                    
Install as a Cake Tool

DataFilter.Filtering.ExcelLike

High-performance engine for advanced, Excel-like filtering logic.

Visual customization: UI packages only — CUSTOMIZATION.md.

NuGet integration

Install the package

dotnet add package DataFilter.Filtering.ExcelLike

Target frameworks

net8.0, net9.0

Dependencies

  • DataFilter.Core (transitive when referenced from UI packages)

Typically consumed indirectly via DataFilter.Wpf, DataFilter.Blazor, or DataFilter.PlatformShared. Add this package directly when building a custom UI on top of Core.

Popup colors and styles are configured in UI packages via FilterTheme — see CUSTOMIZATION.md.

Quick start

using DataFilter.Core.Abstractions;
using DataFilter.Filtering.ExcelLike.Models;
using DataFilter.Filtering.ExcelLike.Services;

var state = new ExcelFilterState
{
    SelectedValues = new HashSet<object?> { "Alice", "Bob" },
    SelectAll = false
};

var descriptor = new ExcelFilterDescriptor("Name", state);
context.AddOrUpdateDescriptor(descriptor);

// After replacing the data source, reconcile selections against new distincts
ExcelFilterSelectionReconciler.Reconcile(state, distinctValues, dropSelectionsNotInDistinct: true);

Logic Overview

  • Hierarchical Distinct Values: Grouping dates by Year/Month/Day.
  • Custom Filters: Combining primitive selection with operator-based rules.
  • Accumulation Modes:
    • Union: Add items from search to results.
    • Intersection: Refine current results with search.

Key Services

ExcelFilterEngine

The central hub for data analysis and filter creation.

ExcelFilterDescriptor / ExcelFilterState

  • Descriptors builds filter rules from the column state. A custom filter (CustomOperator) adds one rule; AdditionalCustomCriteria adds further AND-combined rules on the same property (same semantics as the popup’s stacked custom filters).
  • SelectedValues holds the distinct values used for list/In selection; the UI reconciles these when the backing data is replaced.
  • OrSearchPatterns persists Union (OR) of full search results without materializing distinct lists (e.g., StartsWith("Alice") OR StartsWith("Henry")).
  • OrSelectedValues persists Union (OR) when the user selects only a subset of a searched group (e.g., StartsWith("Alice") OR In(["Henry 124","Henry 146"])).

ExcelFilterSelectionReconciler

Keeps ExcelFilterState.SelectedValues aligned with current distinct value instances (e.g. after ItemSource / LocalDataSource replacement). Uses reference equality where possible, then value equality. The dropSelectionsNotInDistinct flag distinguishes strict reconciliation (grid refresh) from popup InitializeAsync (preserve off-list selections during search narrowing).

WildcardMatcher

Performance-optimized utility for text pattern matching (supporting * and ?). Core evaluation also supports wildcards via FilterEvaluator / FilterExpressionBuilder.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on DataFilter.Filtering.ExcelLike:

Package Downloads
DataFilter.PlatformShared

Package Description

DataFilter.Wpf

Package Description

DataFilter.Blazor

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.4 233 6/9/2026
1.1.3 217 6/8/2026
1.1.2 208 6/8/2026
1.1.1 197 6/5/2026
1.1.0 228 6/4/2026
1.0.0-beta 118 3/10/2026