最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用MiniExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)到Excel/CSV文件

 更新時(shí)間:2024年02月13日 09:44:10   作者:Dm_dotnet  
MiniExcel是一個(gè)簡(jiǎn)單、高效避免OOM的.NET處理Excel查、寫(xiě)、填充數(shù)據(jù)的工具,這篇文章主要介紹了C#如何使用MiniExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)到Excel/CSV文件,需要的可以參考下

MiniExcel簡(jiǎn)介

簡(jiǎn)單、高效避免OOM的.NET處理Excel查、寫(xiě)、填充數(shù)據(jù)工具。

目前主流框架大多需要將數(shù)據(jù)全載入到內(nèi)存方便操作,但這會(huì)導(dǎo)致內(nèi)存消耗問(wèn)題,MiniExcel 嘗試以 Stream 角度寫(xiě)底層算法邏輯,能讓原本1000多MB占用降低到幾MB,避免內(nèi)存不夠情況。

特點(diǎn):

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

項(xiàng)目地址:mini-software/MiniExcel: Fast, Low-Memory, Easy Excel .NET helper to import/export/template spreadsheet (support Linux, Mac) (github.com)

安裝 MiniExcel

導(dǎo)出數(shù)據(jù)

 public class Student
  {
      public string? Name { get; set; }
      public string? Home { get; set; }
      public int? Age {  get; set; }   
  }
?
 //獲得當(dāng)前目錄的路徑
 string currentDirectory = Directory.GetCurrentDirectory();
?
 //合并當(dāng)前目錄與Excel文件名
 var path = Path.Combine(currentDirectory, $"{Guid.NewGuid()}.xlsx");
 
  List<Student> studentList = new List<Student>()
  {
      new Student { Name = "小東", Home = "New York", Age = 25 },
      new Student { Name = "小西", Home = "London", Age = 22 },
      new Student { Name = "小南", Home = "Paris", Age = 28 },
      new Student { Name = "小北", Home = "Tokyo", Age = 24 },
      new Student { Name = "小王", Home = "Berlin", Age = 26 }
 };
?
MiniExcel.SaveAs(path, studentList);

導(dǎo)入Excel中如下圖所示:

但是目前還不支持Excel的插入:

因此如果遇到不僅僅只是生成Excel,后續(xù)還要向Excel添加數(shù)據(jù)的需求,可以用csv代替:

 //獲得當(dāng)前目錄的路徑
 string currentDirectory = Directory.GetCurrentDirectory();
?
 //合并當(dāng)前目錄與CSV文件名
 var path = Path.Combine(currentDirectory, $"{Guid.NewGuid()}.csv");
?
 List<Student> studentList = new List<Student>()
  {
      new Student { Name = "小東", Home = "New York", Age = 25 },
      new Student { Name = "小西", Home = "London", Age = 22 },
      new Student { Name = "小南", Home = "Paris", Age = 28 },
      new Student { Name = "小北", Home = "Tokyo", Age = 24 },
      new Student { Name = "小王", Home = "Berlin", Age = 26 }
 };
?
 MiniExcel.SaveAs(path, studentList);

生成的CSV文件如下圖所示:

向CSV文件繼續(xù)添加數(shù)據(jù):

  //獲得當(dāng)前目錄的路徑
  string currentDirectory = Directory.GetCurrentDirectory();
?
  //合并當(dāng)前目錄與Excel文件名
  //var path = Path.Combine(currentDirectory, $"{Guid.NewGuid()}.csv");
  var path = Path.Combine(currentDirectory, "10de09bb-ad8c-4430-b717-5f24117a11a6.csv");
?
  List<Student> studentList = new List<Student>()
   {
       new Student { Name = "小東", Home = "New York", Age = 25 },
       new Student { Name = "小西", Home = "London", Age = 22 },
       new Student { Name = "小南", Home = "Paris", Age = 28 },
       new Student { Name = "小北", Home = "Tokyo", Age = 24 },
       new Student { Name = "小王", Home = "Berlin", Age = 26 }
  };
?
  //MiniExcel.SaveAs(path, studentList);
  MiniExcel.Insert(path, studentList);

繼續(xù)添加數(shù)據(jù)后的CSV文件如下圖所示:

導(dǎo)入數(shù)據(jù)

 var path = "你的文件路徑";
 var rows = MiniExcel.Query<Student>(path);

實(shí)現(xiàn)效果如下所示:

以上就是C#使用MiniExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)到Excel/CSV文件的詳細(xì)內(nèi)容,更多關(guān)于C# MiniExcel導(dǎo)入導(dǎo)出數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#自定義字符串補(bǔ)0函數(shù)實(shí)例

    C#自定義字符串補(bǔ)0函數(shù)實(shí)例

    這篇文章主要介紹了C#自定義字符串補(bǔ)0函數(shù),通過(guò)一個(gè)自定義函數(shù)形式實(shí)例分析了C#操作字符串實(shí)現(xiàn)補(bǔ)零操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C# 使用Dictionary復(fù)制克隆副本及比較是否相等

    C# 使用Dictionary復(fù)制克隆副本及比較是否相等

    這篇文章主要介紹了C# 使用Dictionary復(fù)制克隆副本及比較是否相等,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 將excel數(shù)據(jù)轉(zhuǎn)換成dataset示例

    將excel數(shù)據(jù)轉(zhuǎn)換成dataset示例

    這篇文章主要介紹了不借助第三方插件的情況下將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet的方法,需要的朋友可以參考下
    2014-02-02
  • C#處理Paint事件的方法

    C#處理Paint事件的方法

    這篇文章主要介紹了C#處理Paint事件的方法,實(shí)例分析了C#使用Paint進(jìn)行圖形繪制的技巧,需要的朋友可以參考下
    2015-06-06
  • C# 如何判斷兩個(gè)文件內(nèi)容是否相同的方法

    C# 如何判斷兩個(gè)文件內(nèi)容是否相同的方法

    使用System.security.Cryptography.HashAlgorithm類(lèi)為每個(gè)文件生成一個(gè)哈希碼,然后比較兩個(gè)哈希碼是否相同
    2013-05-05
  • C#多線(xiàn)程編程詳解

    C#多線(xiàn)程編程詳解

    C#提供了豐富的多線(xiàn)程操作,為編程帶來(lái)了極大的便利,但如果使用不當(dāng)也會(huì)帶來(lái)各種各樣的麻煩。本篇文章主要介紹了C#多線(xiàn)程,有需要的可以了解一下。
    2016-11-11
  • C#可變參數(shù)params示例詳解

    C#可變參數(shù)params示例詳解

    params是c#的一個(gè)關(guān)鍵字,用用漢語(yǔ)來(lái)說(shuō)的話(huà)叫可變參數(shù),這里的可變,不是說(shuō)的類(lèi)型可變,而是指的個(gè)數(shù)可變,這是c#的一個(gè)基礎(chǔ)關(guān)鍵字,相信大家都有一定的了解,本篇文章就來(lái)大致的說(shuō)一下C#可變參數(shù)params
    2022-02-02
  • C#實(shí)現(xiàn)對(duì)二維數(shù)組排序的方法

    C#實(shí)現(xiàn)對(duì)二維數(shù)組排序的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)對(duì)二維數(shù)組排序的方法,實(shí)例分析了C#數(shù)組遍歷與排序的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • c#使用htmlagilitypack解析html格式字符串

    c#使用htmlagilitypack解析html格式字符串

    這篇文章主要介紹了c#使用htmlagilitypack解析html格式字符串的示例,需要的朋友可以參考下
    2014-03-03
  • Unity常用音頻操作類(lèi)示例代碼

    Unity常用音頻操作類(lèi)示例代碼

    這篇文章主要介紹了Unity常用音頻操作類(lèi),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07

最新評(píng)論

翁牛特旗| 双峰县| 电白县| 大足县| 嘉禾县| 临桂县| 合川市| 常熟市| 泰安市| 监利县| 安阳县| 吐鲁番市| 湟源县| 颍上县| 巨野县| 黔西县| 汶上县| 铜山县| 仁怀市| 邳州市| 申扎县| 湖口县| 长丰县| 临汾市| 嘉禾县| 拜泉县| 长兴县| 文山县| 五家渠市| 安国市| 江达县| 滦平县| 慈溪市| 南丰县| 永修县| 洮南市| 湖州市| 资阳市| 沾化县| 长岭县| 阿尔山市|