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

在日常开发中使用CSV文件进行数据导入和导出、数据交换是非常常见的需求,以下来讲讲在DotNet中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入,需要的朋友可以参考下

CsvHelper类库介绍

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

什么是 .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();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11710.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Layui layui.treeTable 树表格组件 去除图标展示

下面的样式设置是为了在layui树形表格中移除默认的文件夹和叶子节点图标&#xff0c;以及如何设置节点展开和子节点的图标为空 /* 节点未展开时的图标 */.layui-icon-folder:before { content: "";}/* 节点展开时的图标 */.layui-icon-folder-open:before {content: …

网络编程——Python简单TCP通信功能代码实践

这里写目录标题 Python简单TCP通信功能代码实践阅读本博客前需准备的几个问题1. 网络通信的机制是什么&#xff1f;2. 什么是python进行网络编程&#xff1f;3. IP地址和端口是什么&#xff1f; 一个简单的TCP通信功能示例&#xff1a;client端.pysever端.pyPYCHARM运行结果 Py…

ESP32开发__搭建VSCode开发环境试编译项目

目录 1. 概述 2. 安装相关必要插件 3. VSCode及相关扩展件安装 3.1. VS Code 3.2. ESP-IDF Visual Studio Code Extension 3.3. Configure ESP-IDF 4. Demo试运行 4.1. 打开工程 4.2. 连接设备并配置端口 4.3. 配置工程 4.3.1. 设置“目标”芯片 4.3.2. menuconfig…

丹摩征文活动|Llama3.1的部署与使用指南

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 丹摩征文 1. 初识Llama3.12. 部署流程创建实例登录实例部署LLama3.1 3. 实践使用教程4. 实践感想 前言&#xff1a;人工智能&#xff08;AI&…

柔性鞋材振动刀智能视觉裁切机市场报告:未来几年年复合增长率CAGR为5.4%

震动刀切割设备是一种利用振动刀片在各种非金属材料表面上切割的设备&#xff0c;振动刀切割机利用刀片高频振动和360度旋转&#xff0c;能保证每分钟上万次的振动频率&#xff0c;可在平面进行垂直切割&#xff0c;锋利裁剪。震动刀切割设备切割速度快&#xff0c;可以单层切割…

全面盘点多模态融合算法及应用场景

一、引言 多模态融合的定义 多模态融合&#xff08;Multimodal Fusion&#xff09;是指结合来自不同模态&#xff08;如视觉、听觉、文本等&#xff09;的数据&#xff0c;以提升信息处理和理解能力的技术方法。多模态数据通常具有不同的物理性质和信息特征&#xff0c;通过融…

双十一当天有哪些数码好物值得购买,双十一爆款数码好物大盘点

在数字化时代&#xff0c;数码产品已成为我们生活中不可或缺的一部分。无论是提升工作效率的笔记本电脑&#xff0c;还是丰富娱乐生活的智能设备&#xff0c;或是健康监测的智能穿戴&#xff0c;每一款产品都在以不同的方式改善着我们的生活质量。 双十一&#xff0c;作为一年中…

.wslconfig:6 中的未知密钥 ‘boot.systemd‘ 问题解决

我的环境 wsl 2 centos 9 部分博客通过修改 windows上 .wslconfig, 添加如下配置 来启动 systemd [boot] systemdtrue完全误人子弟, 倘若如此配置, 启动 wsl 时会遇到如下错误: C:\Users\2024>wsl wsl: C:\Users\2024\.wslconfig:6 中的未知密钥 boot.systemd正确启用…

独家|京东上线自营秒送,拿出二十年底牌和美团竞争

京东自营秒送开启招商&#xff0c;即时零售也要全托管&#xff1f; 作者|王迟 编辑|杨舟 据「市象」独家获悉&#xff0c;京东将在近期上线自营秒送业务&#xff0c;目前已经开始邀约制招商。「市象」获得的招商资料显示&#xff0c;和5月刚升级上线的京东秒送以POP模式不同&…

使用微信云开发,实现链接激活微信小程序(微信内部和外部H5访问)

首先小程序项目开发&#xff0c;需得支持云开发如何开通云开发&#xff1f;&#xff08;网上教程很多&#xff0c;也很全面&#xff0c;这里仅带过&#xff09; 配置云函数在项目根目录找到 project.config.json 文件&#xff0c;新增 cloudfunctionRoot 字段&#xff0c;指定本…

【ComfyUI +LaMa】图像修复(根据mask移除目标)——comfyui-lama-remover

相关资源下载&#xff1a;https://pan.baidu.com/s/18IL23I-NuXeQMp0W3F6kdA?pwd1111 comfyui-lama-remover &#xff08;手动涂mask或者上传mask&#xff09; https://github.com/Layer-norm/comfyui-lama-remover 原始项目链接 https://github.com/advimman/lama 方法1…

什么是 WPF 中的转换器?如何自定义一个值转换器?

WPF&#xff08;Windows Presentation Foundation&#xff09;中的“转换器”&#xff08;Converter&#xff09;是用来在绑定过程中&#xff0c;将源数据转换为目标数据格式的工具。它常常用于将数据模型中的值转换为视图需要的格式&#xff0c;或反向转换。转换器通常实现IVa…

网络安全之命令注入漏洞解析

漏洞简介 Atlassian Bitbucket Server 和 Data Center 是 Atlassian 推出的一款现代化代码协作平台&#xff0c;支持代码审查、分支权限管理、CICD 等功能。 受影响的Bitbucket Server 和 Data Center版本存在使用环境变量的命令注入漏洞&#xff0c;具有控制其用户名权限的攻…

关于我重生到21世纪学C语言这件事——函数详解

与诸君共进步&#xff01;&#xff01;&#xff01; 文章目录 1. 函数是什么2. 库函数3. 自定义函数4. 函数参数5. 函数调用6. 函数的嵌套调用和链式访问7. 函数的声明和定义8. 函数递归8.1 什么是递归8.2 递归的限制条件8.3 递归的举例8.4 递归与迭代 1. 函数是什么 数学中我们…

想要监控办公电脑,好用的监控软件怎么选择

在现代办公环境中&#xff0c;监控办公电脑不仅能帮助企业确保员工的工作效率&#xff0c;还能够提高数据安全性&#xff0c;防止信息泄露。随着技术的不断发展&#xff0c;市面上涌现了各种监控软件&#xff0c;其中不乏功能强大、使用便捷的工具。今天&#xff0c;我们就来探…

2024-2025第九届华为ICT大赛中国创新赛问题解答

华为ICT大赛2024-2025中国赛区创新赛正火热报名中&#xff0c;吸引了众多高校学生积极报名参赛。创新赛主要考察参赛者对AI技术与其他ICT技术的综合应用和创新能力&#xff0c;参赛者需从行业场景或生活中的真实需求出发&#xff0c;运用华为人工智能技术&#xff0c;或人工智能…

网页设计平台:6个技术亮点

想要创建个人或商业网站来分享知识或推广商品吗&#xff1f;这篇文章将为你介绍6个免费的网页制作平台&#xff0c;帮助你即使没有编程基础也能快速、轻松地搭建出专业且引人注目的网站。让我们一起探索这些平台&#xff0c;发现它们的特色和优势。 即时设计 即时设计是一个云…

您知道康复科是干什么的吗?

康复医学对于医院是一个重要的朝阳科室&#xff0c;正不断向多元化方向发展&#xff0c;并深入临床各学科&#xff0c;成为现代医学不可或缺的一环。 目前&#xff0c;康复范围日益广泛&#xff0c;涵盖骨科康复、神经康复、疼痛康复、儿童康复、产后康复、心肺康复及老年康复等…

Docker 镜像和容器的导入导出及常用命令

Docker 镜像和容器的导入导出 1.1 镜像的导入导出 1.1.1 镜像的保存 通过镜像ID保存 方式一&#xff1a; docker save image_id > image-save.tar例如&#xff1a; rootUbuntu:/usr/local/docker/nginx# docker imagesREPOSITORY TAG IMAGE ID …

202409电子学会青少年机器人技术等级考试(四级)理论综合真题

青少年机器人技术等级考试理论综合试卷&#xff08;四级&#xff09; 分数&#xff1a;100 题数&#xff1a;30 一、单选题(共20题&#xff0c;共80分) 1. Arduino C程序如下&#xff0c;当变量score的值为100时&#xff0c;该段程序运行后&#xff0c;串口监视器输出结果是…