av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

一個(gè)簡(jiǎn)單高效低內(nèi)存的.NET操作Excel開源框架-MiniExcel

前言

日常工作中經(jīng)常與數(shù)據(jù)打交道的同學(xué)肯定會(huì)難以避免對(duì)Excel的一些數(shù)據(jù)操作如導(dǎo)入、導(dǎo)出等,但是當(dāng)對(duì)一些大數(shù)據(jù)量操作Excel時(shí)經(jīng)常會(huì)遇到一個(gè)常見的問(wèn)題內(nèi)存溢出。今天給大家推薦一個(gè)簡(jiǎn)單、高效、低內(nèi)存避免OOM(內(nèi)存溢出)的.NET操作Excel開源框架:MiniExcel。

官方介紹

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

圖片

項(xiàng)目特點(diǎn)

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

主流Excel操作框架性能對(duì)比

導(dǎo)入、查詢 Excel 比較

圖片

導(dǎo)出、創(chuàng)建 Excel 比較

圖片

快速開始

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

Query 查詢 Excel 返回強(qiáng)型別 IEnumerable 數(shù)據(jù)

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(path);

// or

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

圖片

Query 查詢 Excel 返回Dynamic IEnumerable 數(shù)據(jù)

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);
}

支持集合<匿名類別>或是<強(qiáng)型別>

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

IEnumerable>

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

圖片

IDataReader

推薦使用,可以避免載入全部數(shù)據(jù)到內(nèi)存.

MiniExcel.SaveAs(path, reader);

圖片

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

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

項(xiàng)目源碼地址

更多項(xiàng)目實(shí)用功能和特性歡迎前往項(xiàng)目開源地址查看,別忘了給項(xiàng)目一個(gè)Star支持。

https://gitee.com/dotnetchina/MiniExcel

優(yōu)秀項(xiàng)目和框架精選

該項(xiàng)目已收錄到C#/.NET/.NET Core優(yōu)秀項(xiàng)目和框架精選中,關(guān)注優(yōu)秀項(xiàng)目和框架精選能讓你及時(shí)了解C#、.NET和.NET Core領(lǐng)域的最新動(dòng)態(tài)和最佳實(shí)踐,提高開發(fā)工作效率和質(zhì)量??右淹?,歡迎大家踴躍提交PR推薦或自薦(讓優(yōu)秀的項(xiàng)目和框架不被埋沒????)。

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


分享標(biāo)題:一個(gè)簡(jiǎn)單高效低內(nèi)存的.NET操作Excel開源框架-MiniExcel
文章出自:http://uogjgqi.cn/article/dpjocdo.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流