Soenneker.Blazor.SheetMapper
4.0.339
Prefix Reserved
dotnet add package Soenneker.Blazor.SheetMapper --version 4.0.339
NuGet\Install-Package Soenneker.Blazor.SheetMapper -Version 4.0.339
<PackageReference Include="Soenneker.Blazor.SheetMapper" Version="4.0.339" />
<PackageVersion Include="Soenneker.Blazor.SheetMapper" Version="4.0.339" />
<PackageReference Include="Soenneker.Blazor.SheetMapper" />
paket add Soenneker.Blazor.SheetMapper --version 4.0.339
#r "nuget: Soenneker.Blazor.SheetMapper, 4.0.339"
#:package Soenneker.Blazor.SheetMapper@4.0.339
#addin nuget:?package=Soenneker.Blazor.SheetMapper&version=4.0.339
#tool nuget:?package=Soenneker.Blazor.SheetMapper&version=4.0.339
Soenneker.Blazor.SheetMapper
A Blazor component and utility library for mapping CSV or tabular files to C# objects.
Leverage FilePond for uploads and TomSelect for interactive dropdowns. Automatically extract headers, map columns to your model, and retrieve a clean { property ? column } map.
Features
- Header extraction from CSV or tab-delimited files
- Interactive mapping of columns to model properties
- Automatic heuristic mapping (case- and whitespace-insensitive)
- Status icons for unmapped, duplicate, and mapped states
- Show/hide the status-icon column on demand
- API to fetch the final mapping as
Dictionary<string, string>
Installation
dotnet add package Soenneker.Blazor.SheetMapper
Setup
Register interop in your DI container (e.g.,
Program.cs):builder.Services.AddSheetMapperAsScoped();Import namespace in your
_Imports.razoror component:@using Soenneker.Blazor.SheetMapper
Basic Usage
@page "/import"
@inject ISheetMapperInterop SheetMapperInterop
<SheetMapper
@ref="sheetMapper"
TargetType="typeof(Employee)"
AutomaticallyMap="true"
ShowStatusIcons="true" />
<button class="btn btn-primary mt-3" @onclick="ShowMap">
Get Mapping
</button>
@code {
private SheetMapper? sheetMapper;
private void ShowMap()
{
if (sheetMapper is not null)
{
var map = sheetMapper.GetCurrentMap();
// map: property ? CSV column
}
}
}
Component Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
TargetType |
Type |
� | Required. Model type whose writable properties are mapped. |
AutomaticallyMap |
bool |
false |
Run auto-mapping heuristic on file load. |
ShowStatusIcons |
bool |
true |
Toggle visibility of the status-icon column. |
NotMappedIcon |
RenderFragment |
?? | Icon/markup for unmapped state. |
DuplicatedIcon |
RenderFragment |
?? | Icon/markup for duplicate-mapping state. |
MappedIcon |
RenderFragment |
? | Icon/markup for successful mapping. |
Public API
void AutoMap()Re-run the auto-mapping logic at any time.Dictionary<string, string> GetCurrentMap()Returns{ property ? selected column }. Unmapped properties return"".
Customization
Status Icons
Override the built-in emojis with your own markup (SVG, <i>, etc.):
<SheetMapper
TargetType="typeof(Employee)"
NotMappedIcon="@<i class='fas fa-exclamation-triangle'></i>"
DuplicatedIcon="@<i class='fas fa-sync-alt'></i>"
MappedIcon="@<i class='fas fa-check-circle'></i>"
/>
Show/Hide Icon Column
Use the ShowStatusIcons parameter to toggle the entire status-icon column:
<SheetMapper TargetType="typeof(Employee)" ShowStatusIcons="false" />
Styling
CSS classes for fine-tuning:
.map-row� wrapper for each mapping row.status-icon� container for the icon
Override or extend them to match your design system.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Sep (>= 0.12.2)
- Soenneker.Blazor.FilePond (>= 4.0.3595)
- Soenneker.Blazor.TomSelect (>= 4.0.4344)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.339 | 0 | 3/14/2026 |
| 4.0.338 | 0 | 3/14/2026 |
| 4.0.337 | 0 | 3/14/2026 |
| 4.0.336 | 3 | 3/13/2026 |
| 4.0.335 | 28 | 3/13/2026 |
| 4.0.334 | 32 | 3/13/2026 |
| 4.0.333 | 33 | 3/12/2026 |
| 4.0.331 | 29 | 3/12/2026 |
| 4.0.330 | 36 | 3/12/2026 |
| 4.0.329 | 30 | 3/12/2026 |
| 4.0.328 | 33 | 3/12/2026 |
| 4.0.327 | 34 | 3/12/2026 |
| 4.0.326 | 36 | 3/11/2026 |
| 4.0.325 | 32 | 3/11/2026 |
| 4.0.324 | 31 | 3/11/2026 |
| 4.0.323 | 46 | 3/11/2026 |
| 4.0.322 | 42 | 3/11/2026 |
| 4.0.321 | 42 | 3/11/2026 |
| 4.0.320 | 50 | 3/11/2026 |
| 4.0.319 | 77 | 3/10/2026 |
Update dependency Soenneker.Blazor.TomSelect to 4.0.4344 (#618)