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

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 class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}

效果如下:

4a723fa466c3e7f88b45fd69bb08c1a5.png

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.RegisterClassMap<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; }


    public string Name { get; set; }
}

效果如下:

449b56d740acffd28c25b23e40480480.png

04

项目地址

https://github.com/JoshClose/CsvHelper

觉得好看 点个在看👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值