mirror of
https://gitee.com/dotnetchina/MiniExcel.git
synced 2024-11-29 18:38:08 +08:00
README-NuGet & 1.34.0 release
This commit is contained in:
parent
7ecf0ffe69
commit
12aa2fe131
106
README-NuGet.md
Normal file
106
README-NuGet.md
Normal file
@ -0,0 +1,106 @@
|
||||
|
||||
![](https://github.com/dotnet-foundation/swag/blob/main/logo/dotnetfoundation_v4_horizontal.png?raw=true)
|
||||
|
||||
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](https://user-images.githubusercontent.com/12729184/113086657-ab8bd000-9214-11eb-9563-c970ac1ee35e.png)
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
- [Import/Query Excel](#getstart1)
|
||||
|
||||
- [Export/Create Excel](#getstart2)
|
||||
|
||||
- [Excel Template](#getstart3)
|
||||
|
||||
- [Excel Column Name/Index/Ignore Attribute](#getstart4)
|
||||
|
||||
- [Examples](#getstart5)
|
||||
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
You can install the package [from NuGet](https://www.nuget.org/packages/MiniExcel)
|
||||
|
||||
### Release Notes
|
||||
|
||||
Please Check [Release Notes](docs)
|
||||
|
||||
### TODO
|
||||
|
||||
Please Check [TODO](https://github.com/shps951023/MiniExcel/projects/1?fullscreen=true)
|
||||
|
||||
### Performance
|
||||
|
||||
Benchmarks logic can be found in [MiniExcel.Benchmarks](benchmarks/MiniExcel.Benchmarks/Program.cs) , and test cli
|
||||
|
||||
```bash
|
||||
dotnet run -p .\benchmarks\MiniExcel.Benchmarks\ -c Release -f netcoreapp3.1 -- -f * --join
|
||||
```
|
||||
|
||||
Output from the latest run is :
|
||||
|
||||
```bash
|
||||
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](https://github.com/shps951023/MiniExcel/issues/276)
|
||||
|
||||
|
||||
|
||||
#### Import/Query Excel
|
||||
|
||||
Logic : [**Test1,000,000x10.xlsx**](benchmarks/MiniExcel.Benchmarks/Test1%2C000%2C000x10.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
|
@ -29,9 +29,8 @@
|
||||
---
|
||||
|
||||
|
||||
### QQ群(1群) : [813100564](https://qm.qq.com/cgi-bin/qm/qr?k=3OkxuL14sXhJsUimWK8wx_Hf28Wl49QE&jump_from=webapi) / QQ群(2群) : [579033769](https://jq.qq.com/?_wv=1027&k=UxTdB8pR) / QQ群(3群) : [625362917](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFudsVhvZSNkHyt0ljbfTqZfMFO9AoFH&authKey=G5zGjiUNHjZ3efr7GzR43lESp3e3mYL2fczPALvEsUduZD2zWk9y%2BGXBJ0egt0%2FE&noverify=0&group_code=625362917)
|
||||
#### QQ群 - 1群 : [813100564](https://qm.qq.com/q/33VXm1bMQ8) / 2群 : [579033769](https://qm.qq.com/q/TaGjA1sPaq) / 3群 : [625362917](https://qm.qq.com/q/QOtWF0fAEq) / 4群 : [907750429](https://qm.qq.com/q/iKYWzIZ33y)
|
||||
|
||||
### 店铺: [视频教学](https://edu.51cto.com/course/32914.html) | [咸鱼](https://m.tb.cn/h.5yxd1XY?tk=98krWpVNBzR) | [淘宝](https://minisoftware.taobao.com/)
|
||||
|
||||
----
|
||||
|
||||
|
@ -22,6 +22,14 @@
|
||||
|
||||
---
|
||||
|
||||
### 1.34.0
|
||||
- [New] Add freeze panes (#626) (via @meld-cp)
|
||||
- [New] Add DateTime Nullale support (via @jiaguangli)
|
||||
- [OPT] Reduce memory requirements when processing templates + template formulas (#638) (via @meld-cp)
|
||||
- [Bug] Fix problem with multi-line when using Query (#628) (via @meld-cp)
|
||||
- [Bug] Fix empty data reader issue. (#629) (via @duszekmestre)
|
||||
- [Bug] Fix Fields of type long cannot be set to text normally #627 (via @shps951023)
|
||||
|
||||
### 1.33.0
|
||||
- [New] Support Template formulas (#622) (via @meld-cp)
|
||||
- [New] Update DynamicConfiguration format (#595) (via @wangboshun)
|
||||
@ -103,7 +111,6 @@
|
||||
### 1.27.0
|
||||
|
||||
- [New] Support DateTimeOffset and ExcelFormat #430 (via @Lightczx , @shps951023 )
|
||||
|
||||
- [Optimization] SaveAs by datareader support dimension #231 (via @shps951023)
|
||||
|
||||
### 1.26.7
|
||||
|
@ -25,6 +25,14 @@
|
||||
|
||||
---
|
||||
|
||||
### 1.34.0
|
||||
- [New] 支持 freeze panes (#626) (via @meld-cp)
|
||||
- [New] 支持 DateTime Nullale support (via @jiaguangli)
|
||||
- [OPT] Reduce memory requirements when processing templates + template formulas (#638) (via @meld-cp)
|
||||
- [Bug] 修正 problem with multi-line when using Query (#628) (via @meld-cp)
|
||||
- [Bug] 修正 empty data reader issue. (#629) (via @duszekmestre)
|
||||
- [Bug] 修正 Fields of type long cannot be set to text normally #627 (via @shps951023)
|
||||
|
||||
### 1.33.0
|
||||
- [New] 支持 Template 公式 (#622) (via @meld-cp)
|
||||
- [New] 更新 DynamicConfiguration format (#595) (via @wangboshun)
|
||||
|
@ -24,6 +24,14 @@
|
||||
|
||||
---
|
||||
|
||||
### 1.34.0
|
||||
- [New] 支持 freeze panes (#626) (via @meld-cp)
|
||||
- [New] 支持 DateTime Nullale support (via @jiaguangli)
|
||||
- [OPT] Reduce memory requirements when processing templates + template formulas (#638) (via @meld-cp)
|
||||
- [Bug] 修正 problem with multi-line when using Query (#628) (via @meld-cp)
|
||||
- [Bug] 修正 empty data reader issue. (#629) (via @duszekmestre)
|
||||
- [Bug] 修正 Fields of type long cannot be set to text normally #627 (via @shps951023)
|
||||
|
||||
### 1.33.0
|
||||
- [New] 支持 Template 公式 (#622) (via @meld-cp)
|
||||
- [New] 更新 DynamicConfiguration format (#595) (via @wangboshun)
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net45;netstandard2.0;net6.0;</TargetFrameworks>
|
||||
<Version>1.33.0</Version>
|
||||
<Version>1.34.0</Version>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AssemblyName>MiniExcel</AssemblyName>
|
||||
@ -51,7 +51,7 @@ Todo : https://github.com/mini-software/MiniExcel/projects/1?fullscreen=true</De
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="icon.png" Pack="true" PackagePath="\" />
|
||||
<None Include="..\..\README.md" Link="README.md" Pack="true" PackagePath="" />
|
||||
<None Include="..\..\README-NuGet.md" Link="README.md" Pack="true" PackagePath="" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
|
||||
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
|
||||
|
Loading…
Reference in New Issue
Block a user