MiniExcel 1.34.1

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
  • Support real-time operation of each row of data
  • Support 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 150KB
  • 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

Benchmarks logic can be found in MiniExcel.Benchmarks , and test cli

dotnet run -p .\benchmarks\MiniExcel.Benchmarks\ -c Release -f netcoreapp3.1 -- -f * --join

Output from the latest run is :

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
  [Host]     : .NET Framework 4.8 (4.8.4341.0), X64 RyuJIT
  Job-ZYYABG : .NET Framework 4.8 (4.8.4341.0), X64 RyuJIT
IterationCount=3  LaunchCount=3  WarmupCount=3

Benchmark History : Link

Import/Query Excel

Logic : Test1,000,000x10.xlsx as performance test basic file, 1,000,000 rows * 10 columns "HelloWorld" cells, 23 MB file size

Library Method Max Memory Usage Mean
MiniExcel 'MiniExcel QueryFirst' 0.109 MB 0.0007264 sec
ExcelDataReader 'ExcelDataReader QueryFirst' 15.24 MB 10.66421 sec
MiniExcel 'MiniExcel Query' 17.3 MB 14.17933 sec
ExcelDataReader 'ExcelDataReader Query' 17.3 MB 22.56508 sec
Epplus 'Epplus QueryFirst' 1,452 MB 18.19801 sec
Epplus 'Epplus Query' 1,451 MB 23.64747 sec
OpenXmlSDK 'OpenXmlSDK Query' 1,412 MB 52.00327 sec
OpenXmlSDK 'OpenXmlSDK QueryFirst' 1,413 MB 52.34865 sec
ClosedXml 'ClosedXml QueryFirst' 2,158 MB 66.18897 sec
ClosedXml 'ClosedXml Query' 2,184 MB 191.43412 sec

Export/Create Excel

Logic : create a total of 10,000,000 "HelloWorld" excel

Library Method Max Memory Usage Mean
MiniExcel 'MiniExcel Create Xlsx' 15 MB 11.53181 sec
Epplus 'Epplus Create Xlsx' 1,204 MB 22.50971 sec
OpenXmlSdk 'OpenXmlSdk Create Xlsx' 2,621 MB 42.47399 sec
ClosedXml 'ClosedXml Create Xlsx' 7,141 MB 140.93992 sec

Documents

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

Showing the top 20 packages that depend on MiniExcel.

Packages Downloads
Quantum.Framework.Core.StandardLib
Package Description
31
Quantum.Framework.Core.StandardLib
Package Description
32
Quantum.Framework.Core.StandardLib
Package Description
33
Quantum.Framework.Core.StandardLib
Package Description
34
Quantum.Framework.Core.StandardLib
Package Description
35
Quantum.Framework.Core.StandardLib
Package Description
36
Quantum.Framework.Core.StandardLib
Package Description
37
Quantum.Framework.Core.StandardLib
Package Description
41
Quantum.Framework.Core.StandardLib
Package Description
43
Quantum.Framework.Core.StandardLib
Package Description
44
Quantum.Framework.Core.StandardLib
Package Description
45
Quantum.Framework.Core.StandardLib
Package Description
49
Quantum.Framework.Core.StandardLib
Package Description
50
Quantum.Framework.Core.StandardLib
Package Description
61
Quantum.Framework.Core.StandardLib
Package Description
62

Please Check [Release Notes](https://github.com/mini-software/MiniExcel/tree/master/docs)

.NET Framework 4.5

  • No dependencies.

.NET 6.0

  • No dependencies.

.NET Standard 2.0

  • No dependencies.

Version Downloads Last updated
1.36.0 1 12/27/2024
1.35.0 3 11/24/2024
1.34.2 4 11/25/2024
1.34.1 5 11/29/2024
1.34.0 5 12/02/2024
1.33.0 4 12/02/2024
1.32.1 3 11/29/2024
1.32.0.5-quantumdev 123 07/15/2024
1.32.0.4-quantumdev 92 06/19/2024
1.32.0.3-quantumdev 16 06/18/2024
1.32.0.2-quantumdev 26 06/11/2024
1.32.0.1-quantumdev 11 06/07/2024
1.32.0 2 11/28/2024
1.31.3 15 01/27/2024
1.31.2 75 12/15/2023
1.31.0 5 11/29/2024
1.30.3 5 11/29/2024
1.30.2 4 11/11/2024
1.30.1 5 11/28/2024
1.30.0 4 11/29/2024
1.29.0 10 02/01/2023
1.28.5 4 12/02/2024
1.28.4 2 11/26/2024
1.28.2 2 12/06/2024
1.28.1 4 12/06/2024
1.28.0 5 12/02/2024
1.27.0 4 12/02/2024
1.26.7 4 11/26/2024
1.26.6 4 11/11/2024
1.26.5 3 12/09/2024
1.26.4 2 12/06/2024
1.26.3 5 12/10/2024
1.26.2 2 12/02/2024
1.26.1 2 12/10/2024
1.26.0 5 12/10/2024
1.24.2 3 12/08/2024
1.24.1 8 11/12/2024
1.24.0 3 11/30/2024
1.23.2 5 11/29/2024
1.23.1 5 11/30/2024
1.22.0 4 11/12/2024
0.21.5 3 12/02/2024
0.21.4 4 11/29/2024
0.19.1 3 12/02/2024
0.19.0 5 11/28/2024
0.18.0 3 11/28/2024
0.17.5 4 11/11/2024
0.17.4 4 11/29/2024
0.17.2 3 11/25/2024
0.17.1 4 11/27/2024
0.17.0 4 11/28/2024
0.16.1 5 11/27/2024
0.16.0 4 11/12/2024
0.15.5 5 11/30/2024
0.15.4 6 11/12/2024
0.15.2 3 12/01/2024
0.15.1 5 11/12/2024
0.14.8 5 11/29/2024
0.14.7 3 11/26/2024
0.14.6 2 12/06/2024
0.14.5 3 12/02/2024
0.14.4 5 11/27/2024
0.14.3 5 11/30/2024
0.14.2 2 12/06/2024
0.14.1 7 11/27/2024
0.14.0 4 11/27/2024
0.13.5 2 11/16/2024
0.13.4 5 11/28/2024
0.13.3 7 11/07/2023
0.13.2 3 11/26/2024
0.13.1 5 11/27/2024
0.13.0 3 11/17/2024
0.12.2 4 11/28/2024
0.12.1 3 11/26/2024
0.12.0-beta 6 11/27/2024
0.11.1 3 12/14/2024
0.11.0 5 11/28/2024
0.10.3 6 11/11/2024
0.10.2 2 11/30/2024
0.10.1 5 11/12/2024
0.10.0 5 12/11/2024
0.9.1 4 11/11/2024
0.9.0 4 12/11/2024
0.8.0 3 12/14/2024
0.7.0 3 12/14/2024
0.6.0 3 12/11/2024
0.5.0 5 11/27/2024
0.4.0 3 11/24/2024
0.3.0 3 11/26/2024
0.2.3 5 11/27/2024
0.2.2 5 11/27/2024
0.2.1 3 11/25/2024
0.2.0 4 11/27/2024
0.1.0-preview 4 11/12/2024
0.0.7-beta 4 11/11/2024
0.0.6-beta 6 11/12/2024
0.0.5-beta 3 11/26/2024
0.0.4-beta 3 11/14/2024
0.0.3-beta 3 11/27/2024
0.0.2-beta 4 11/12/2024
0.0.1-beta 5 11/12/2024