MiniExcel 1.34.0

Prefix Reserved
dotnet add package MiniExcel --version 1.34.0                
NuGet\Install-Package MiniExcel -Version 1.34.0                
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" Version="1.34.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MiniExcel --version 1.34.0                
#r "nuget: MiniExcel, 1.34.0"                
#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 MiniExcel as a Cake Addin
#addin nuget:?package=MiniExcel&version=1.34.0

// Install MiniExcel as a Cake Tool
#tool nuget:?package=MiniExcel&version=1.34.0                

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

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  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. 
.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 net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  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.
  • .NETFramework 4.5

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.
  • net6.0

    • No dependencies.

NuGet packages (95)

Showing the top 5 NuGet packages that depend on MiniExcel:

Package Downloads
GuoKun.CPS

国坤CPS库

NF.Utilities

公共类库,增加DataTable转excel

DH.MiniExcel

DH框架的Excel处理库。基于https://github.com/mini-software/MiniExcel

TXQ.Utils

Package Description

BootstrapBlazor.TableExport

Bootstrap UI components extensions of export

GitHub repositories (9)

Showing the top 5 popular GitHub repositories that depend on MiniExcel:

Repository Stars
Scighost/Starward
Game Launcher for miHoYo - 米家游戏启动器
dotnetcore/Magicodes.IE
Import and export general library, support Dto import and export, template export, fancy export and dynamic export, support Excel, Csv, Word, Pdf and Html.
dotnetcore/BootstrapBlazor
A set of enterprise-class UI components based on Bootstrap and Blazor
xunkong/xunkong
记录旅途中发生的事
izhaorui/Zr.Admin.NET
🎉ZR.Admin.NET是一款前后端分离的、跨平台基于RBAC的通用权限管理后台。ORM采用SqlSugar。前端采用Vue、AntDesign,支持多租户、缓存、任务调度、支持统一异常处理、接口限流、支持一键生成前后端代码,支持动态国际化翻译(Vue3),等诸多黑科技,代码简洁易懂、易扩展让开发更简单、更通用。
Version Downloads Last updated
1.34.0 5,082 7/21/2024
1.33.0 20,157 7/7/2024
1.32.1 55,800 5/16/2024
1.32.0 12,135 5/12/2024
1.31.3 280,442 12/27/2023
1.31.2 425,494 8/10/2023
1.31.0 202,936 5/28/2023
1.30.3 75,696 5/1/2023
1.30.2 351,785 2/21/2023
1.30.1 29,869 2/7/2023
1.30.0 186,904 12/27/2022
1.29.0 179,359 11/9/2022
1.28.5 17,977 10/30/2022
1.28.4 2,848 10/29/2022
1.28.2 2,833 10/29/2022
1.28.1 23,607 10/22/2022
1.28.0 65,137 9/19/2022
1.27.0 3,614 9/18/2022
1.26.7 10,800 9/9/2022
1.26.6 9,988 9/4/2022
1.26.5 288,337 6/30/2022
1.26.4 6,314 6/26/2022
1.26.3 224,376 6/7/2022
1.26.2 173,048 4/21/2022
1.26.1 10,178 4/17/2022
1.26.0 218,153 4/12/2022
1.24.2 3,131 3/17/2022
1.24.1 4,665 3/15/2022
1.24.0 14,460 3/9/2022
1.23.2 7,211 3/4/2022
1.23.1 225,656 2/14/2022
1.22.0 3,086 2/12/2022
0.21.5 30,528 2/7/2022
0.21.4 8,147 1/27/2022
0.19.1 274,433 11/15/2021
0.19.0 12,367 10/21/2021
0.18.0 15,861 9/13/2021
0.17.5 246,797 8/20/2021
0.17.4 4,799 8/17/2021
0.17.2 251,296 6/30/2021
0.17.1 6,027 6/23/2021
0.17.0 5,839 6/21/2021
0.16.1 4,354 6/19/2021
0.16.0 3,111 6/19/2021
0.15.5 4,707 6/13/2021
0.15.4 3,244 6/8/2021
0.15.2 9,764 5/20/2021
0.15.1 3,036 5/19/2021
0.14.8 3,497 5/18/2021
0.14.7 3,300 5/17/2021
0.14.6 4,455 5/13/2021
0.14.5 3,442 5/12/2021
0.14.4 3,031 5/12/2021
0.14.3 4,539 5/10/2021
0.14.2 3,030 5/10/2021
0.14.1 4,392 5/7/2021
0.14.0 3,105 5/7/2021
0.13.5 4,692 4/30/2021
0.13.4 5,087 4/26/2021
0.13.3 5,218 4/22/2021
0.13.2 4,669 4/20/2021
0.13.1 3,189 4/18/2021
0.13.0 2,974 4/16/2021
0.12.2 2,902 4/15/2021
0.12.1 2,814 4/14/2021
0.12.0-beta 2,205 4/13/2021
0.11.1 4,200 4/9/2021
0.11.0 2,896 4/8/2021
0.10.3 2,893 4/6/2021
0.10.2 2,845 4/6/2021
0.10.1 2,875 4/4/2021
0.10.0 2,876 4/2/2021
0.9.1 2,916 4/1/2021
0.9.0 2,809 4/1/2021
0.8.0 3,099 3/29/2021
0.7.0 2,867 3/28/2021
0.6.0 2,889 3/26/2021
0.5.0 2,852 3/26/2021
0.4.0 2,866 3/25/2021
0.3.0 2,829 3/21/2021
0.2.3 2,934 3/20/2021
0.2.2 3,181 3/18/2021
0.2.1 3,072 3/17/2021
0.2.0 3,106 3/15/2021
0.1.0-preview 2,385 3/15/2021
0.0.7-beta 2,371 3/14/2021
0.0.6-beta 2,396 3/14/2021
0.0.5-beta 2,507 3/14/2021
0.0.4-beta 2,389 3/14/2021
0.0.3-beta 2,369 3/13/2021
0.0.2-beta 2,324 3/4/2021
0.0.1-beta 2,291 3/3/2021