MiniExcel.Core 2.0.0-preview.1

Prefix Reserved
This is a prerelease version of MiniExcel.Core.
dotnet add package MiniExcel.Core --version 2.0.0-preview.1
                    
NuGet\Install-Package MiniExcel.Core -Version 2.0.0-preview.1
                    
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="MiniExcel.Core" Version="2.0.0-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MiniExcel.Core" Version="2.0.0-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="MiniExcel.Core" />
                    
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 MiniExcel.Core --version 2.0.0-preview.1
                    
#r "nuget: MiniExcel.Core, 2.0.0-preview.1"
                    
#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 MiniExcel.Core@2.0.0-preview.1
                    
#: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=MiniExcel.Core&version=2.0.0-preview.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=MiniExcel.Core&version=2.0.0-preview.1&prerelease
                    
Install as a Cake Tool

This project is part of the .NET Foundation and operates under their code of conduct.


Introduction

MiniExcel is simple and efficient to avoid OOM's .NET processing Excel tool.

At present, most popular frameworks need to load all the data into the memory to facilitate operation, but it will cause memory consumption problems. MiniExcel tries to use algorithm from a stream to reduce the original 1000 MB occupation to a few MB to avoid OOM(out of memory).

image

Features

  • Low memory consumption, avoid OOM (out of memory) and full GC
  • Supports real time operation of each row of data
  • Supports LINQ deferred execution, it can do low-consumption, fast paging and other complex queries
  • Lightweight, without Microsoft Office installed, no COM+, DLL size is less than 400KB
  • Easy API style to read/write/fill excel

Get Started

Installation

You can install the package from NuGet

Release Notes

Please Check Release Notes

TODO

Please Check TODO

Performance

The code for the benchmarks can be found in MiniExcel.Benchmarks. To run all the benchmarks use:

dotnet run -project .\benchmarks\MiniExcel.Benchmarks -c Release -f net9.0 -filter * --join

Hardware and settings used are the following:

BenchmarkDotNet v0.15.0, Linux Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.300
  [Host]   : .NET 9.0.5 (9.0.525.21509), X64 RyuJIT AVX2
  ShortRun : .NET 9.0.5 (9.0.525.21509), X64 RyuJIT AVX2
Import/Query Excel

The file used to test performance is Test1,000,000x10.xlsx, a 32MB document containing 1,000,000 rows * 10 columns whose cells are filled with the string "HelloWorld".

Method Mean StdDev Error Gen0 Gen1 Gen2 Allocated
'MiniExcel QueryFirst' 63.70 μs 0.337 μs 6.144 μs 2.9297 2.7669 - 49.67 KB
'ExcelDataReader QueryFirst' 5,010,679.51 μs 53,245.186 μs 971,390.400 μs 105000.0000 333.3333 - 1717272.56 KB
'MiniExcel Query' 9,172,286.91 μs 12,805.326 μs 233,616.824 μs 448500.0000 4666.6667 - 7327883.36 KB
'ExcelDataReader Query' 10,609,617.09 μs 29,055.953 μs 530,088.745 μs 275666.6667 68666.6667 - 4504691.87 KB
'Epplus QueryFirst' 13,770,656.24 μs 45,909.809 μs 837,565.827 μs 174333.3333 88833.3333 4333.3333 3700587.76 KB
'Epplus Query' 19,257,306.83 μs 63,117.956 μs 1,151,506.486 μs 452333.3333 90500.0000 5333.3333 8223933.16 KB
'ClosedXml Query' 31,070,263.83 μs 342,973.671 μs 6,257,116.502 μs 401666.6667 104166.6667 3333.3333 6822559.68 KB
'ClosedXml QueryFirst' 31,141,877.48 μs 21,006.538 μs 383,237.459 μs 402166.6667 104833.3333 3833.3333 6738357.8 KB
'OpenXmlSDK QueryFirst' 31,750,686.63 μs 263,328.569 μs 4,804,093.357 μs 374666.6667 374500.0000 3166.6667 6069266.96 KB
'OpenXmlSDK Query' 32,919,119.46 μs 411,395.682 μs 7,505,388.691 μs 374666.6667 374500.0000 3166.6667 6078467.83 KB
Export/Create Excel

Logic: create a total of 10,000,000 "HelloWorld" cells Excel document

Method Mean StdDev Error Gen0 Gen1 Gen2 Allocated
'MiniExcel Create Xlsx' 4.427 s 0.0056 s 0.1023 s 251666.6667 1833.3333 1666.6667 3.92 GB
'OpenXmlSdk Create Xlsx by DOM mode' 22.729 s 0.1226 s 2.2374 s 307000.0000 306833.3333 3833.3333 6.22 GB
'ClosedXml Create Xlsx' 22.851 s 0.0190 s 0.3473 s 195500.0000 54500.0000 4166.6667 4.48 GB
'Epplus Create Xlsx' 23.027 s 0.0088 s 0.1596 s 89000.0000 17500.0000 6000.0000 2.51 GB

Warning: these results may be outdated. You can find the benchmarks for the latest release here.

Documents

https://github.com/mini-software/MiniExcel

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  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 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 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on MiniExcel.Core:

Package Downloads
MiniExcel

Fast, Low-Memory, Easy Excel .NET processing tool for importing, exporting and templating spreadsheets Github : https://github.com/mini-software/MiniExcel Gitee : https://gitee.com/dotnetchina/MiniExcel Issues : https://github.com/mini-software/MiniExcel/issues Todo : https://github.com/mini-software/MiniExcel/projects/1?fullscreen=true

MiniExcel.Csv

Fast, Low-Memory, Easy Excel .NET processing tool for importing, exporting and templating spreadsheets Github : https://github.com/mini-software/MiniExcel Gitee : https://gitee.com/dotnetchina/MiniExcel Issues : https://github.com/mini-software/MiniExcel/issues Todo : https://github.com/mini-software/MiniExcel/projects/1?fullscreen=true

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0-preview.1 198 8/31/2025