当前位置: 欣欣网 > 码农

CsvHelper:一个轻便高性能的Csv文件读写操作开源库!

2024-06-03码农

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 」,免费领取

推荐阅读

觉得好看 点个在看👇