Engineering project · .NET / Library

RecordSift

Import data. Validate each record. Explain the outcome.

Import CSV and XLSX files into typed .NET Framework 4.8 records with configurable validation, row-level diagnostics, and optional reports.

KEY THEMESImport CSV and XLSX into typed C# records with explicit, culture-aware mappingValidate required values, ranges, formats, duplicates, and custom rulesSeparate accepted and rejected rows, with structured diagnostics and optional reports
01 / Why

The problem

Reading a CSV file or Excel worksheet is only one part of a reliable data import. Applications must also map columns, convert values, validate business rules, and explain which rows failed.

A parser can read cells, but it cannot decide whether a customer row satisfies an application's domain rules or explain consistently why the row was rejected.

Repeatedly implementing mapping, validation, and error reporting for each input format makes integrations harder to test and maintain.

02 / What

The solution

Provide a reusable import-and-validation pipeline for CSV and XLSX that returns typed accepted records, rejected rows, and deterministic diagnostics without requiring Excel or a runtime service.

RecordSift unifies column mapping, culture-aware conversion, validation, and result reporting across CSV and XLSX imports.

Callers receive a typed import result with accepted records, status, summary, and location-aware diagnostics; optional JSON, text, and diagnostic CSV reports describe the outcome.

03 / Who

Who it's for

Maintainers of Windows/.NET Framework 4.8 applications that import business data from CSV or Excel.

The published 0.1.0 package targets Windows and .NET Framework 4.8, using the synchronous import model described in its consumer guide.

It suits applications needing more than file parsing, but is not a streaming engine or a cross-platform modern .NET library.

04 / How

How it works

Key capabilities and concepts. See the project documentation or source code for implementation details.

1

Import CSV and XLSX into typed C# records with explicit, culture-aware mapping

Define the expected columns and explicit source-to-property mappings for your C# record type.

Import from CSV or XLSX with caller-selected resource budgets and import options.

2

Validate required values, ranges, formats, duplicates, and custom rules

Apply required-value, range, length, duplicate, pattern, and custom-record validation rules.

Validation decisions remain with the consuming application and are reported consistently.

3

Separate accepted and rejected rows, with structured diagnostics and optional reports

Inspect accepted records, rejected rows, and their row- and field-level diagnostics.

Generate JSON, readable text, or machine-interchange diagnostic CSV when needed; spreadsheet formula safety requires separate handling.

05 / Engineering perspective

Design decisions that matter

  • Keep record validation and mapping explicit and owned by the consuming application.

    Applications define their own mappings and validation rules rather than relying on hidden conventions.

    This supports controlled, explainable import behavior.

  • Make accepted records, rejected rows, and diagnostic locations inspectable.

    Structured result statuses and stable diagnostic codes make failures actionable.

    Optional reports do not automatically persist accepted records.

  • Use existing CSV and Excel readers while defining resource limits and input safety boundaries.

    The library wraps established CSV and XLSX readers instead of replacing parsing engines.

    Caller budgets and XLSX safety checks reduce some risks but do not guarantee fixed process memory or CPU usage.

06 / Current state

Explore the implementation

Version 0.1.0 is published on NuGet.org for Windows/.NET Framework 4.8. Work on a future 0.2 release is ongoing; consult the source repository for current plans.

Stable 0.1.0 is available publicly on NuGet.org and is MIT licensed.

The published package is Windows/net48 only; verify current compatibility, installation guidance, and release notes in the repository.