Excel InputOutput Mapper lib. for Import to and Export from Poco class and .xlsx file using attribute annotation on model Properties.
In addition it has several useful confing options and Export also supports columns formatting.
Both Reading and Writing are very fast while the package itself is lightweight with minimum dependencies.
Also take a look into others packages:
-Open source (MIT or cFOSS) authored .Net libraries (@Infopedia.io personal blog post)
№ | .Net library | Description |
---|---|---|
1 | EFCore.BulkExtensions | EF Core Bulk CRUD Ops (Flagship Lib) |
2 | EFCore.UtilExtensions | EF Core Custom Annotations and AuditInfo |
3 | EFCore.FluentApiToAnnotation | Converting FluentApi configuration to Annotations |
4* | ExcelIO.FastMapper | Excel Input Output Mapper to-from Poco & .xlsx with attribute |
5 | FixedWidthParserWriter | Reading & Writing fixed-width/flat data files |
6 | CsCodeGenerator | C# code generation based on Classes and elements |
7 | CsCodeExample | Examples of C# code in form of a simple tutorial |
If you find this project useful you can mark it by leaving a Github Star ⭐
And even with community license, if you want help development, you can make a DONATION:
_ or _
⚡
Please read CONTRIBUTING for details on code of conduct, and the process for submitting pull requests.
When opening issues do write detailed explanation of the problem or feature with reproducible example.
Want to Contact for Development & Consulting: www.codis.tech (Quality Delivery)
Excel-IO Mapper config:
PROPERTY : DEFAULTvalue
----------------------------------------------
1 FileName,
2 SheetName: "Data",
3 UseDefaultColumnFormat: true,
4 AutoFilterVisible: true,
5 UseDynamicColumnWidth: true,
6 WrapHeader: false,
7 DynamicColumnWidthCoefficient: false,
8 FreezeHeader: true,
9 FreezeColumnNumber: true,
10 HeaderFont: null,
11 DataFont: null,
12 ExportOnlyPropertiesWithAttribute: null,
13 Dictionary<string, ExcelIOColumnAttribute> DynamicSettings
-----------------------------------------------
ExcelIO Column Attribute : defaultValue
bool Ignore : false ................ // Field omitted from Excel
string Header : 0 .................. // Header Name
string Format : null ............... // Column format
int Order : new List<string>() ..... // Position in column orders
int Width .......................... // Column width
*-Special feature is 'Dynamic Settings' with which Attributes values can be defined at runtime, for all usage types.
Under the hood library uses most efficient packages in their domain:
-Sylvan.Data.Excel for Reading
-LargeXlsx for Writing as it has formatting option and is still pretty quick.
Library has only those 2 dependecies that themselves are fully self-containd, and as such are quite thin.
(LargeXslx has transitive dependency on SharpCompress which is somewhat bigger ~1 MB).
While doing research for optimal tool, criteria were to be Open Source, with code on Github and having Nuget.
Also to be actively maintained, have certain period of development with proven record of usage (Git commits, starts and Nuget downloads).
Comparison of several packages for the optimal and fastest one:
ExcelIO.NetLibs Compare