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 { 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); } /// /// 模型定义 /// public class Foo { public int Id { get; set; } public string 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.RegisterClassMap(); var records = csv.GetRecords(); foreach(var record in records) { Console.WriteLine("Id:" + record.Id + ", Name:"+ record.Name); } } /// /// 映射规则 /// public class FooMap : ClassMap { public FooMap() { Map(m => m.Id); Map(m => m.Name); } } /// /// 模型定义 /// public class Foo { public int Id { get; set; } public string Name { get; set; } }
效果如下:
04 项目地址
https://github.com/JoshClose/CsvHelper
- End -
推荐阅读
AutoFixture:.NET 的假数据生成工具
Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目
Plotly.NET:一个强大的、漂亮的.NET开源交互式图表库
OxyPlot:一个功能强大、漂亮.Net跨平台开源绘图库
NodaTime:一个.NET开源的强大日期和时间库
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!