成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個簡單高效低內存的.NET操作Excel開源框架 - MiniExcel

開源
MiniExcel簡單、高效避免OOM的.NET處理Excel查、寫、填充數據工具。目前主流框架大多需要將數據全載入到內存方便操作,但這會導致內存消耗問題,MiniExcel 嘗試以 Stream 角度寫底層算法邏輯,能讓原本1000多MB占用降低到幾MB,避免內存不夠情況。

前言

日常工作中經常與數據打交道的同學肯定會難以避免對Excel的一些數據操作如導入、導出等,但是當對一些大數據量操作Excel時經常會遇到一個常見的問題內存溢出。今天給大家推薦一個簡單、高效、低內存避免OOM(內存溢出)的.NET操作Excel開源框架:MiniExcel。

官方介紹

MiniExcel簡單、高效避免OOM的.NET處理Excel查、寫、填充數據工具。目前主流框架大多需要將數據全載入到內存方便操作,但這會導致內存消耗問題,MiniExcel 嘗試以 Stream 角度寫底層算法邏輯,能讓原本1000多MB占用降低到幾MB,避免內存不夠情況。

圖片圖片

項目特點

  • 低內存耗用,避免OOM、頻繁 Full GC 情況。
  • 支持即時操作每行數據。
  • 兼具搭配 LINQ 延遲查詢特性,能辦到低消耗、快速分頁等復雜查詢。
  • 輕量,不需要安裝 Microsoft Office、COM+,DLL小于150KB。
  • 簡便操作的 API 風格。

主流Excel操作框架性能對比

導入、查詢 Excel 比較

圖片圖片

導出、創建 Excel 比較

圖片圖片

快速開始

注意:下面只展示部分代碼示例,詳情框架功能請前往源碼地址查看:https://gitee.com/dotnetchina/MiniExcel

Query 查詢 Excel 返回強型別 IEnumerable 數據

public class UserAccount
{
    public Guid ID { get; set; }
    public string Name { get; set; }
    public DateTime BoD { get; set; }
    public int Age { get; set; }
    public bool VIP { get; set; }
    public decimal Points { get; set; }
}

var rows = MiniExcel.Query<UserAccount>(path);

// or

using (var stream = File.OpenRead(path))
    var rows = stream.Query<UserAccount>();

圖片圖片

Query 查詢 Excel 返回Dynamic IEnumerable 數據

var rows = MiniExcel.Query(path).ToList();

// or 
using (var stream = File.OpenRead(path))
{
    var rows = stream.Query().ToList();
                
    Assert.Equal("MiniExcel", rows[0].A);
    Assert.Equal(1, rows[0].B);
    Assert.Equal("Github", rows[1].A);
    Assert.Equal(2, rows[1].B);
}

支持集合<匿名類別>或是<強型別>

var path = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.xlsx");
MiniExcel.SaveAs(path, new[] {
    new { Column1 = "MiniExcel", Column2 = 1 },
    new { Column1 = "Github", Column2 = 2}
});

IEnumerable<IDictionary<string, object>>

var values = new List<Dictionary<string, object>>()
{
    new Dictionary<string,object>{{ "Column1", "MiniExcel" }, { "Column2", 1 } },
    new Dictionary<string,object>{{ "Column1", "Github" }, { "Column2", 2 } }
};
MiniExcel.SaveAs(path, values);

圖片圖片

IDataReader

推薦使用,可以避免載入全部數據到內存.

MiniExcel.SaveAs(path, reader);

圖片圖片

推薦 DataReader 多表格導出方式(建議使用 Dapper ExecuteReader )

using (var cnn = Connection)
{
    cnn.Open();
    var sheets = new Dictionary<string,object>();
    sheets.Add("sheet1", cnn.ExecuteReader("select 1 id"));
    sheets.Add("sheet2", cnn.ExecuteReader("select 2 id"));
    MiniExcel.SaveAs("Demo.xlsx", sheets);
}

項目源碼地址

更多項目實用功能和特性歡迎前往項目開源地址查看??,別忘了給項目一個Star支持??。

https://gitee.com/dotnetchina/MiniExcel

優秀項目和框架精選

該項目已收錄到C#/.NET/.NET Core優秀項目和框架精選中,關注優秀項目和框架精選能讓你及時了解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發工作效率和質量。坑已挖,歡迎大家踴躍提交PR推薦或自薦(讓優秀的項目和框架不被埋沒??)。

https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

責任編輯:武曉燕 來源: 追逐時光者
相關推薦

2013-05-17 10:37:43

.NETWEB壓力測試WEB壓力測試工具

2023-06-14 08:02:54

函數代碼概率

2020-09-29 15:08:47

Go UI框架開發

2023-12-21 11:12:31

Node.js.NET開源庫

2025-01-06 06:10:00

開源.NEThttps://mp

2024-05-28 07:06:44

2016-09-14 17:48:44

2017-06-08 15:53:38

PythonWeb框架

2024-04-11 09:45:31

.NETRabbitMQEasyNetQ

2017-11-10 11:59:54

開源NET高效

2022-06-02 09:09:27

前端React低代碼編輯器

2013-12-17 11:35:16

2025-05-23 10:20:00

2014-10-14 15:50:19

UIAndroid

2019-07-24 14:49:48

SQL開源庫BI軟件

2021-01-19 13:10:29

ZshLinuxUbuntu

2021-11-17 09:54:10

代碼開發工具

2024-10-09 17:10:05

2025-01-02 14:56:42

開源.NET開發

2020-11-25 13:48:04

LazPaintPaint.NET開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: ww 255hh 在线观看| 国产乱码精品一区二区三区中文 | 成人午夜精品 | 中文字幕一区二区在线观看 | 国产精品国产三级国产播12软件 | 中文字幕爱爱视频 | 黄片毛片免费观看 | 中文字幕亚洲视频 | 欧美激情视频一区二区三区免费 | 欧美精品在线免费 | 国产伦精品一区二区三区高清 | 日日操操 | 麻豆久久久久久 | 国产区精品视频 | 日韩一区二区三区在线 | 亚洲一区在线免费观看 | 亚洲精品免费在线观看 | a视频在线观看 | 色偷偷噜噜噜亚洲男人 | 国产xxxx搡xxxxx搡麻豆 | 亚洲视频免费 | 亚洲 欧美 另类 综合 偷拍 | 免费观看一级特黄欧美大片 | 久久99久久 | 日韩中文在线视频 | 亚洲在线久久 | 欧美精品网站 | 国产91网址 | 亚洲国产精品va在线看黑人 | 超碰超碰 | 国产精品久久久久久久久久久久 | 欧美在线小视频 | 一级a毛片 | 亚洲 成人 av| 日韩欧美在线一区 | 国产精品欧美一区二区三区不卡 | 国产精品96久久久久久 | 91亚洲免费| 国产99视频精品免费视频7 | 亚洲a在线视频 | 美女久久久久久久 |