C#不要再使用Npoi啦,使用MiniExcel操作Excel文件更快更高效!
1.簡介
? ? MiniExcel簡單、高效避免OOM的.NET處理Excel查、寫、填充數據工具。
目前主流框架如Npoi 需要將數據全載入到內存方便操作,但這會導致內存消耗問題。
MiniExcel 嘗試以 Stream 角度寫底層算法邏輯,能讓原本1000多MB占用降低到幾MB,避免內存不夠情況。
2.特點
? ?低內存耗用,避免OOM(out of memoery)、頻繁 Full GC 情況
支持即時操作每行數據
兼具搭配 LINQ 延遲查詢特性,能辦到低消耗、快速分頁等復雜查詢
輕量,不需要安裝 Microsoft Office、COM+,DLL小于150KB
簡便操作的 API 風格。
3.特點
低內存耗用,避免OOM(out of memoery)、頻繁 Full GC 情況
支持即時操作每行數據,
兼具搭配 LINQ 延遲查詢特性,能辦到低消耗、快速分頁等復雜查詢
輕量,不需要安裝 Microsoft Office、COM+,DLL小于150KB
簡便操作的 API 風格.
4.使用
安裝
使用Nuget搜索Miniexcel安裝
準備一個Excel測試文件
里面有三列,Id,Name,Title
再寫入20行數據
我們在使用Query 查詢 Excel 返回強型別 IEnumerable 數據
既然是強類型 那我們我們就要寫一個Model類
public class Test{public int Id { get; set; }public string Name { get; set; }public string Title { get; set; }}為了大家看得方便明了,我這里使用winform進行測試? miniexcel 支持.net framework 和.net core 。
查詢就一行代碼,簡單明了,比Npoi是不是看起來就好多了
var rows = MiniExcel.Query<Test>(path).ToList();uiDataGridView1.DataSource = rows;寫入并另存為文件也很簡單
?MiniExcel.SaveAs(@"D:\測試文檔全部導出.xlsx", rows);
重寫標題另存就需要寫一個重寫標題的方法
private IEnumerable<Dictionary<string, object>> GetOrders(List<Test> test){foreach (var item in test){var newCompanyPrepareds = new Dictionary<string, object>();newCompanyPrepareds.Add("Id", item.Id);newCompanyPrepareds.Add("姓名", item.Name);newCompanyPrepareds.Add("職位", item.Title);yield return newCompanyPrepareds;}}最后再說一下我為什么推薦Minexcel的原因:
這里我開個小小的車,
npoi就相當于半老徐娘, minixecel就相當于18歲的姑娘
且npoi有的我們的miniexcel都有,如果有這兩個姑娘讓你選擇,我現在大家都會選擇miniexcel吧
最后我希望所有neter關注前沿技術,不要故步自封。
最后大家如果喜歡我的文章,還麻煩給個關注, 希望net生態圈越來越好!
總結
以上是生活随笔為你收集整理的C#不要再使用Npoi啦,使用MiniExcel操作Excel文件更快更高效!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 里程碑 .Net7再更新,从此彻底碾压J
- 下一篇: 【C#/.NET】.NET6中全局异常处