Csv是一種非常常見的檔格式,采用純文本格式,不依賴於任何特定的軟體或資料庫,且檔體積小,易於使用。平常計畫開發中,需要都會采用這種格式,這就涉及到Csv檔的讀寫操作。
下面介紹一個輕便高效能的Csv檔讀寫操作開源庫。
01
計畫簡介
CsvHelper 是一個.Net開源庫,這是一個強大且易於使用的工具,使得開發者可以非常方便處理 Csv檔。方便我們套用於數據匯入匯出、數據遷移、報告生成等一些套用場景。
02
計畫特點
簡單的API: 提供了直觀的 API 來讀取和寫入 CSV 檔,使得處理 CSV 數據變得更加容易。
靈活的對映: 可以輕松地將 CSV 數據對映到 .NET 物件,反之亦然,這使得數據交換和持久化變得簡單。
強大的解析能力:
支持復雜的 CSV 檔解析,包括帶標題的檔、動態型別處理等。
廣泛的支持: 適用於多種 .NET 平台,基於.NET Standard 2.0開發的。
03
使用方法
1、安裝依賴庫
Install-Package CsvHelper
2、寫入Csv檔
using CsvHelper;
using System.Globalization;
//數據
var records = new List<Foo>
{
new Foo { Id = 1, Name = "one" },
new Foo { Id = 2, Name = "two" },
};
//寫入檔
using (var writer = new StreamWriter(AppContext.BaseDirectory + "file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(records);
}
///<summary>
/// 模型定義
///</summary>
public classFoo
{
publicint Id { get; set; }
publicstring Name { get; set; }
}
效果如下:
3、讀取Csv檔
using CsvHelper;
using CsvHelper.Configuration;
using CsvHelper.Configuration.Attributes;
using System.Globalization;
//讀取檔
using (var reader = new StreamReader(AppContext.BaseDirectory + "file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
csv.Context.Register classMap<FooMap>();
var records = csv.GetRecords<Foo>();
foreach(var record in records)
{
Console.WriteLine("Id:" + record.Id + ", Name:"+ record.Name);
}
}
/// <summary>
/// 對映規則
/// </summary>
public class FooMap : classMap<Foo>
{
public FooMap()
{
Map(m => m.Id);
Map(m => m.Name);
}
}
/// <summary>
/// 模型定義
/// </summary>
public class Foo
{
public int Id { get; set; }
publicstring Name { get; set; }
}
效果如下:
04
計畫地址
https://github.com/JoshClose/CsvHelper
最後推薦加入我的 , 裏麵包含7個教程,其中有:【 三層架構教程 】與【DDD 領域驅動設計架構教程 】。
- End -
分享一套.NetCore從入門到精通視訊教程
點選下方公眾號卡片,關註我
回復「 888 」,免費領取
推薦閱讀
覺得好看 點個在看👇