Logo

.NET使用CsvHelper快速读取和写入CSV文件

photo

2024年06月26日

前言

在日常开发中使用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

参考文章

DotNetGuide技术社区交流群

  • DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目框架推荐、求职和招聘资讯、以及解决问题的平台。
  • 在DotNetGuide技术社区中,开发者们可以分享自己的技术文章、项目经验、学习心得、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
  • 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台。无论您是初学者还是有丰富经验的开发者,我们都希望能为您提供更多的价值和成长机会。

欢迎加入DotNetGuide技术社区微信交流群👪

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件
本文为原创文章,请注意保留出处!

热门文章

SharePoint2010升级到SharePoint2013操作手册 SharePoint2010升级到SharePoint2013操作手册目录第一章...SharePoint2010升级到SharePoint2013操作手册 作者:Pastore Antonio
1700 浏览量
C# DataTable 某一列求和 列为数字类型doubletotal=Convert.ToDouble(datatable.Com...C#DataTable某一列求和 作者:Pastore Antonio
1673 浏览量
修复moss本机访问SharePoint 401.1 HTTP错误 环境:DCServer&...修复moss本机访问SharePoint401.1HTTP错误 作者:Pastore Antonio
1661 浏览量
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 这一篇是从0开始搭建SQLServerAlwaysOn的第三篇,这一篇才真正开始搭建Alway...从0开始搭建SQLServerAlwaysOn第三篇(配置AlwaysOn) 作者:Pastore Antonio
1627 浏览量
SharePoint REST API – 概述 博客地址:http://blog.csdn.net/FoxDaveSharePointRES...SharePointRESTAPI–概述 作者:Pastore Antonio
1616 浏览量
Adding Docker Repository to CentOS 在CentOS系统上添加Docker官方仓库是安装和管理Docker的第一步。以下是详细...AddingDockerRepositorytoCentOS 2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南 用户需求问题:有没有适合配置Flowise的前端框架?目标:寻找类似OpenWebUI...Flowise前端框架配置指南 2026-02-14 · Xzavier Aaron
aspnet-wwwroot-error-solution ASP.NETCore启动报错:DirectoryNotFoundExceptionwwwroo...aspnet-wwwroot-error-solution 2025-12-28 · Pastore Antonio
SharePoint Server 出现 ERR_HTTP2_PROTOCOL_ERROR 如果SharePointServer在http的情况下能够访问,但是在https下不能访问报错如...SharePointServer出现ERR_HTTP2_PROTOCOL_ERROR 2025-10-21 · Pastore Antonio
.NET CORE 快速文本搜索器 简单的搜索引擎:usingSystem;usingSystem.Collections.Gen....NETCORE快速文本搜索器 2025-09-25 · Pastore Antonio
Sql Server 部署SSIS包完成远程数据传输 简介与背景在现代数据管理中,如何高效地完成远程数据的更新任务一直是一个重要的挑战。本文的背景起源于...SqlServer部署SSIS包完成远程数据传输 2026-02-14 · Xzavier Aaron
Coolify的使用 简介Coolify是一种功能强大的自托管综合解决方案,旨在简化应用、数据库以及开源服务的托管流程。...Coolify的使用 2026-02-14 · Xzavier Aaron
Coolify的使用 简介Coolify是一种功能强大的自我托管解决方案,专为那些希望掌控自己的应用、数据库以及开源服...Coolify的使用 2026-02-14 · Xzavier Aaron
SharePoint 2019 Web Application Creation 在SharePoint2019中创建WebApplication,可以使用PowerSh...SharePoint2019WebApplicationCreation 2026-02-14 · Xzavier Aaron
vscode使用sftp上传 简介在现代开发环境中,VSCode凭借其强大的扩展性和丰富的功能,成为许多开发者的首选代码编辑器。...vscode使用sftp上传 2026-02-14 · Xzavier Aaron
在现有Seafile 上追加 Azure Blob 磁盘 已有运行中的Seafile(Docker)现有数据保持不变新增几个AzureBlob作为...在现有Seafile上追加AzureBlob磁盘 2025-11-21 · Pastore Antonio
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint 2025-09-25 · Pastore Antonio
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 2025-09-25 · Pastore Antonio
VS中MVC解决方案复制后修改调试端口 我之前是直接去解决方案属性中修改:然后恭喜你,你会喜提报错。正确方式,打开项目属性:这里重置切...VS中MVC解决方案复制后修改调试端口 2025-03-17 · Pastore Antonio
如何在C#WinForms应用程序中显示当前版本信息 在开发C#WinForms应用程序时,向用户展示当前版本信息是一个常见的需求。这不仅可以帮助用户了解...如何在C#WinForms应用程序中显示当前版本信息 2025-03-10 · Pastore Antonio
2022年4月30日 削苹果削了手,太懒不想收藏资料的时候复制粘贴所以开发了一个快速发布的组件。花了2天……浏览量:1...2022年4月30日 2022-04-30 · Pastore Antonio
2021年12月27日 头疼/胸闷/肋条疼/脚脖子疼……没钱……明天要给员工发工资了。浏览量:1,825 2021-12-27 · Pastore Antonio
2021年12月22日 今天天气:多云转晴早上太多雾,但怕迟到还是一路超速……赶到了目的地,在车库绕了四层没一个车位,绕晕...2021年12月22日 2021-12-22 · Pastore Antonio
aspnet-wwwroot-error-solution ASP.NETCore启动报错:DirectoryNotFoundExceptionwwwroo...aspnet-wwwroot-error-solution 2025-12-28 · Pastore Antonio
SharePoint Server 出现 ERR_HTTP2_PROTOCOL_ERROR 如果SharePointServer在http的情况下能够访问,但是在https下不能访问报错如...SharePointServer出现ERR_HTTP2_PROTOCOL_ERROR 2025-10-21 · Pastore Antonio
.NET CORE 快速文本搜索器 简单的搜索引擎:usingSystem;usingSystem.Collections.Gen....NETCORE快速文本搜索器 2025-09-25 · Pastore Antonio
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint 2025-09-25 · Pastore Antonio
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 2025-09-25 · Pastore Antonio
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint 2025-09-25 · Pastore Antonio
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 2025-09-25 · Pastore Antonio
.NET CORE 使用应用方案操作SharePoint Online 世纪互联版 我来为你创建一个.NETCore应用程序,用于向世纪互联SharePointOnline....NETCORE使用应用方案操作SharePointOnline世纪互联版 2025-09-25 · Pastore Antonio
Microsoft Excel 365 的 DCOMCNFG 中缺少 Microsoft Excel 应用程序 试试这个方法:这个方法不是解决你看不看得到,而是配置你看不到也能使用了。原操作方案:Micro...MicrosoftExcel365的DCOMCNFG中缺少MicrosoftExcel应用程序 2025-06-11 · Pastore Antonio
使用SPFX开发SharePoint SE\2019过程中的问题 遇到不能新建ListView控件的,不要怀疑重装就行。装好了去看:C:\Users\Adminis...使用SPFX开发SharePointSE\2019过程中的问题 2025-06-10 · Pastore Antonio
为你的wordpress主题添加支持文章格式 如果你的主题不支持文章格式,首先你需要在functions.php中添加如下类似代码让你的主题支持该...为你的wordpress主题添加支持文章格式 2024-04-17 · Pastore Antonio
wordpress新增文章类型 要在WordPress中添加自定义文章类型,您可以按照以下步骤进行:使用函数创建自定义文章类型:...wordpress新增文章类型 2024-04-17 · Pastore Antonio
去除WordPress登录页面的翻译组件 在主题function.php中添加如下内容:add_filter(‘login_d...去除WordPress登录页面的翻译组件 2023-08-30 · Pastore Antonio
Linux 下Wordpress博客搭建 WordPress#下载安装文件cd/usr/local/nginx/html/blogw...Linux下WordPress博客搭建 2021-12-11 · Pastore Antonio
从零开始在linux下搭建wordpress博客 一,准备linux环境本地虚拟机可以忽略第一部分微博以及微信的公共平台现在正火的一塌糊涂。既...从零开始在linux下搭建wordpress博客 2021-12-11 · Pastore Antonio
centos 常见问题 1:DNS配置域名无法在Linux下解析是一个比较普遍的问题,造成这个问题有很多原因,比如:服务器...centos常见问题 2023-11-08 · Pastore Antonio
linux中查找包含指定内容的文件 文件名+内容根据时间查找日志查询指定时间段内的日志查找关键字只显示包含内容的文件名文件名+...linux中查找包含指定内容的文件 2021-12-11 · Pastore Antonio
Linux 下Wordpress博客搭建 WordPress#下载安装文件cd/usr/local/nginx/html/blogw...Linux下WordPress博客搭建 2021-12-11 · Pastore Antonio
从零开始在linux下搭建wordpress博客 一,准备linux环境本地虚拟机可以忽略第一部分微博以及微信的公共平台现在正火的一塌糊涂。既...从零开始在linux下搭建wordpress博客 2021-12-11 · Pastore Antonio
linux 安装php8 准备工作  创建空文件夹>mkdir/opt/php//创建目录>cd/...linux安装php8 2021-12-11 · Pastore Antonio

最新发布

Sql Server 部署SSIS包完成远程数据传输 简介与背景在现代数据管理中,如何高效地完成远程数据的更新任务一直是一个重要的挑战。本文的背景起源于...SqlServer部署SSIS包完成远程数据传输 转载 2026-02-14
Coolify的使用 简介Coolify是一种功能强大的自托管综合解决方案,旨在简化应用、数据库以及开源服务的托管流程。...Coolify的使用 转载 2026-02-14
Coolify的使用 简介Coolify是一种功能强大的自我托管解决方案,专为那些希望掌控自己的应用、数据库以及开源服...Coolify的使用 转载 2026-02-14
SharePoint 2019 Web Application Creation 在SharePoint2019中创建WebApplication,可以使用PowerSh...SharePoint2019WebApplicationCreation 转载 2026-02-14
vscode使用sftp上传 简介在现代开发环境中,VSCode凭借其强大的扩展性和丰富的功能,成为许多开发者的首选代码编辑器。...vscode使用sftp上传 转载 2026-02-14
aspnet-wwwroot-error-solution ASP.NETCore启动报错:DirectoryNotFoundExceptionwwwroo...aspnet-wwwroot-error-solution #C# 2025-12-28
SharePoint Server 出现 ERR_HTTP2_PROTOCOL_ERROR 如果SharePointServer在http的情况下能够访问,但是在https下不能访问报错如...SharePointServer出现ERR_HTTP2_PROTOCOL_ERROR #C# 2025-10-21
.NET CORE 快速文本搜索器 简单的搜索引擎:usingSystem;usingSystem.Collections.Gen....NETCORE快速文本搜索器 #C# 2025-09-25
.NET CORE 传统方式调用SharePoint 直接贴代码:usingMicrosoft.SharePoint.Client;usingPnP....NETCORE传统方式调用SharePoint #C# 2025-09-25
Azure 申请SharePoint 应用 登录后台如下:进入Azure:选择之后进入创建应用:进入之后输入名字按照如下图示点击注册:创...Azure申请SharePoint应用 #C# 2025-09-25