Ninjanaut.Preconditions 1.1.2

The ID prefix of this package has been reserved for one of the owners of this package by Prefix Reserved
dotnet add package Ninjanaut.Preconditions --version 1.1.2
NuGet\Install-Package Ninjanaut.Preconditions -Version 1.1.2
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="Ninjanaut.Preconditions" Version="1.1.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Ninjanaut.Preconditions --version 1.1.2
#r "nuget: Ninjanaut.Preconditions, 1.1.2"
#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.
// Install Ninjanaut.Preconditions as a Cake Addin
#addin nuget:?package=Ninjanaut.Preconditions&version=1.1.2

// Install Ninjanaut.Preconditions as a Cake Tool
#tool nuget:?package=Ninjanaut.Preconditions&version=1.1.2


Welcome to the project website! ExcelReader is lightweight C# library to ease loading data from Excel file into DataTable object, based on NPOI library.

If you need to load XLSB format, consider to use binary excel reader Ninjanaut.BinaryExcelReader


from nuget package manager console

PM> Install-Package Ninjanaut.ExcelReader

from command line

> dotnet add package Ninjanaut.ExcelReader
Version Targets
1.x .NET 5


  • Loading from file path or bytes.
  • Options might be set via options parameter
Description Option Default Note
Supports xsl, xlsx and xlsm formats Format xlsx
Loading via sheet position or name SheetIndex or SheetName SheetIndex = 0 Setting both will throw ArgumentException
Skip top rows HeaderRowIndex 0
Remove empty rows RemoveEmptyRows true
Allow duplicate columns AllowDuplicateColumns true Duplicated column will be loaded as <column name>_<guid>
Limit max columns to load MaxColumns null I recommend setting this value so that you don't accidentally load empty columns.


using Ninjanaut.IO;

// From file path
var path = @"C:\FooExcel.xlsx";
var datatable = ExcelReader.ToDataTable(path);

// Or from bytes
var path = @"C:\FooExcel.xlsx";
var bytes = File.ReadAllBytes(path);
var datatable = ExcelReader.ToDataTable(bytes);

you can also use options argument

using Ninjanaut.IO;

var path = @"C:\FooExcel.xlsx";
var options = new ExcelReaderOptions 
    // Default settings:
    Format = ExcelReaderFormat.Xlsx,
    SheetIndex = 0,
    SheetName = null,
    HeaderRowIndex = 0,
    RemoveEmptyRows = true,
    AllowDuplicateColumns = true,
    MaxColumns = null

var datatable = ExcelReader.ToDataTable(path, options);

// The options can be defined within the method.
var datatable = ExcelReader.ToDataTable(path, new() { SheetName = "My Sheet" });


DataTable object is suitable for this purpose, because you can easily view the read data directly in Visual Studio for debug purposes, create a collection of entities from it or pass datatable as parameter directly into the SQL server stored procedure.

Release notes

Version Note
1.0.1 XML documentation file added
1.0.0 Initial release


If you would like to contribute to the project, please send a pull request to the dev branch.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.

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
1.1.2 410 9/5/2021
1.1.1 303 8/31/2021
1.1.0 286 8/30/2021
1.0.0 309 8/20/2021

Initial release