前言
在日常开发中使用CSV文件进行数据导入和导出、数据交换是非常常见的需求,今天我们来讲讲在.NET中如何使用CsvHelper
这个开源库快速实现CSV文件读取和写入。
CsvHelper类库介绍
CsvHelper是一个.NET开源、快速、灵活、高度可配置、易于使用的用于读取和写入CSV文件的类库。
CsvHelper类库特点
什么是 .csv 文件?
.csv 文件是一种用于存储表格数据的文本文件,CSV 是 “Comma-Separated Values” 的缩写,意思是 “逗号分隔值”。CSV 文件是一个存储表格和电子表格信息的纯文本文件,其内容通常是一个文本、数字或日期的表格。CSV 文件可以使用以表格形式存储数据的程序轻松导入和导出。
创建控制台应用
创建一个名为:CsvHelperExercise
的.NET 8控制台应用。
安装CsvHelper类库
NuGet包管理器中搜索:CsvHelper
,点击安装!
定义CSV文件读取和写入的对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class StudentInfo { /// <summary> /// 学生学号 /// </summary> public int ID { get ; set ; } /// <summary> /// 学生姓名 /// </summary> public string Name { get ; set ; } /// <summary> /// 学生年龄 /// </summary> public int Age { get ; set ; } /// <summary> /// 班级 /// </summary> public string Class { get ; set ; } /// <summary> /// 性别 /// </summary> public string Gender { get ; set ; } /// <summary> /// 住址 /// </summary> public string Address { get ; set ; } } |
写入CSV文件数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | static void Main( string [] args) { var students = new List { new StudentInfo { ID = 1, Name = "张三" , Age = 20, Class = "终极一班" , Gender = "男" , Address = "北京市东城区" }, new StudentInfo { ID = 2, Name = "李四" , Age = 21, Class = "终极一班" , Gender = "女" , Address = "上海市黄浦区" }, new StudentInfo { ID = 3, Name = "王五" , Age = 22, Class = "终极一班" , Gender = "男" , Address = "广州市越秀区" }, new StudentInfo { ID = 4, Name = "赵六" , Age = 20, Class = "终极二班" , Gender = "女" , Address = "深圳市福田区" }, new StudentInfo { ID = 5, Name = "孙七" , Age = 23, Class = "终极二班" , Gender = "男" , Address = "杭州市西湖区" }, new StudentInfo { ID = 6, Name = "周八" , Age = 24, Class = "终极二班" , Gender = "女" , Address = "南京市玄武区" }, new StudentInfo { ID = 7, Name = "吴九" , Age = 22, Class = "终极二班" , Gender = "男" , Address = "成都市锦江区" }, new StudentInfo { ID = 8, Name = "小袁" , Age = 21, Class = "终极三班" , Gender = "女" , Address = "重庆市渝中区" }, new StudentInfo { ID = 9, Name = "大姚" , Age = 20, Class = "终极三班" , Gender = "男" , Address = "武汉市武昌区" }, new StudentInfo { ID = 10, Name = "追逐时光者" , Age = 23, Class = "终极三班" , Gender = "女" , Address = "长沙市天心区" } }; //写入CSV文件数据 using var writer = new StreamWriter( @".StudentInfoFile.csv" ); using var csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture); csvWriter.WriteRecords(students); } |
读取CSV文件数据
快速读取上面写入到StudentInfoFile.csv
中的数据。
1 2 3 4 5 6 7 | static void Main( string [] args) { //读取CSV文件数据 using var reader = new StreamReader( @".StudentInfoFile.csv" ); using var csvReader = new CsvReader(reader, CultureInfo.InvariantCulture); var getStudentInfos = csvReader.GetRecords().ToList(); } |
项目源码地址
更多项目实用功能和特性欢迎前往项目开源地址查看,别忘了给项目一个Star支持
。
- CsvHelper类库开源地址:https://github.com/JoshClose/CsvHelper
- 文章示例源码地址:https://github.com/YSGStudyHards/DotNetExercises/tree/master/CsvHelperExercise
优秀项目和框架精选
该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没)。
https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
参考文章
https://www.freecodecamp.org/chinese/news/what-is-a-csv-file-and-how-to-open-the-csv-file-format/
- DotNetGuide技术社区交流群DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目框架推荐、求职和招聘资讯、以及解决问题的平台。
- 在DotNetGuide技术社区中,开发者们可以分享自己的技术文章、项目经验、学习心得、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
- 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台。无论您是初学者还是有丰富经验的开发者,我们都希望能为您提供更多的价值和成长机会。
到此这篇关于.NET使用CsvHelper快速读取和写入CSV文件的文章就介绍到这了,更多相关.NET使用CsvHelper快速读取和写入CSV文件内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!