.NET使用CsvHelper快速读取和写入CSV文件的操作方法

 更新时间:2024年06月25日 08:57:12   作者:追逐时光者  
在日常开发中使用CSV文件进行数据导入和导出、数据交换是非常常见的需求,今天我们来讲讲在.NET中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入,需要的朋友可以参考下

前言

在日常开发中使用CSV文件进行数据导入和导出、数据交换是非常常见的需求,今天我们来讲讲在.NET中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入。

CsvHelper类库介绍

CsvHelper是一个.NET开源、快速、灵活、高度可配置、易于使用的用于读取和写入CSV文件的类库。

CsvHelper类库特点

什么是 .csv 文件?

.csv 文件是一种用于存储表格数据的文本文件,CSV 是 "Comma-Separated Values" 的缩写,意思是 "逗号分隔值"。CSV 文件是一个存储表格和电子表格信息的纯文本文件,其内容通常是一个文本、数字或日期的表格。CSV 文件可以使用以表格形式存储数据的程序轻松导入和导出。

创建控制台应用

创建一个名为:CsvHelperExercise的.NET 8控制台应用。

安装CsvHelper类库

NuGet包管理器中搜索:CsvHelper,点击安装!

定义CSV文件读取和写入的对象

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文件数据

 static void Main(string[] args)
        {
            var students = new List<StudentInfo>
            {
                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中的数据。

 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<StudentInfo>().ToList();
        }

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

优秀项目和框架精选

该项目已收录到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文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • WPF框架Prism中区域Region用法介绍

    WPF框架Prism中区域Region用法介绍

    这篇文章介绍了WPF框架Prism中区域Region用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • 浅析.net core 抛异常对性能影响

    浅析.net core 抛异常对性能影响

    在.net项目中使用自定义异常来处理业务很爽,但是又担心大量抛业务异常存在性能问题,下面通过本文介绍.net core 抛异常对性能影响的求证之路,需要的朋友可以参考下
    2022-06-06
  • .Net Core中使用EFCore生成反向工程

    .Net Core中使用EFCore生成反向工程

    这篇文章介绍了.Net Core中使用EFCore生成反向工程的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • asp.net中C#实现手动回收内存的方法

    asp.net中C#实现手动回收内存的方法

    这篇文章主要介绍了asp.net中C#实现手动回收内存的方法,包括System.GC.Collect方法的使用及缓存技术的分析,具有一定的实用价值,需要的朋友可以参考下
    2014-12-12
  • 在ASP.NET Core微服务架构下使用RabbitMQ实现CQRS模式的方法

    在ASP.NET Core微服务架构下使用RabbitMQ实现CQRS模式的方法

    ASP.NET Core微服务架构中,使用RabbitMQ作为消息队列服务,通过实现CQRS模式,将写操作和读操作分离,以提高系统的性能和可伸缩性,本文小编将为大家介绍如何在ASP.NET Core微服务架构下使用RabbitMQ来实现CQRS模式,感兴趣的朋友一起看看吧
    2024-01-01
  • ASP.NET Core Kestrel 中使用 HTTPS (SSL)

    ASP.NET Core Kestrel 中使用 HTTPS (SSL)

    这篇文章主要为大家详细介绍了ASP.NET Core Kestrel 中使用 HTTPS(SSL)的相关资料,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 在 .NET 中 使用 ANTLR4构建语法分析器的方法

    在 .NET 中 使用 ANTLR4构建语法分析器的方法

    本文将介绍如何在 .NET 中使用 ANTLR4 构建语法分析器,本文不会深入讲解 ANTLR4 的语法规则,相关内容可参考 ANTLR4 的官方文档或其他资料,本文将涵盖以下内容:ANTLR4 的开发环境搭建、语法规则编写、语法分析器生成以及语法分析器的使用,感兴趣的朋友一起看看吧
    2025-04-04
  • repeater、gridview 在绑定时判断判断显示不同的行样式或文本

    repeater、gridview 在绑定时判断判断显示不同的行样式或文本

    repeater、gridview 在绑定时判断判断显示不同的行样式或文本的实现代码,需要的朋友可以参考下。
    2011-09-09
  • asp.net 编程 实用语句(6条)

    asp.net 编程 实用语句(6条)

    asp.net编程中6条实用语句,希望可以对asp.net编程的朋友有所帮助。
    2009-06-06
  • .Net 单例模式(Singleton)

    .Net 单例模式(Singleton)

    单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类
    2013-07-07

最新评论