发现一个比较好用的处理csv的C#库,CsvHelper:

CsvHelper是一个用于读取和写入CSV文件的C#库,支持自动类型转换、自定义类型转换器和灵活的映射选项等功能,使得读写CSV文件变得非常方便。

安装:

Install-Package CsvHelper

  • 读取csv

    使用CsvHelper读取CSV文件非常简单。首先,您需要创建一个读取器并指定CSV文件的路径,然后使用该读取器的ReadRecords方法读取CSV文件中的记录。例如:
using (var reader = new StreamReader("path/to/csvfile.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<MyRecordClass>();
foreach (var record in records)
{
// 处理每个记录
}
}

这里的MyRecordClass是您定义的一个类(或则Record),它的属性将自动映射到CSV文件中的列。

如果您的CSV文件包含标题行,您可以使用ReadHeader方法读取它们,然后将映射选项传递给CsvReader以告诉它如何映射列到属性。


using (var reader = new StreamReader("path/to/csvfile.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
csv.ReadHeader();
csv.Configuration.RegisterClassMap<MyRecordClassMap>();
var records = csv.GetRecords<MyRecordClass>();
foreach (var record in records)
{
// 处理每个记录
}
}

在这个例子中,MyRecordClassMap是一个继承自CsvClassMap的类,它用于指定如何将列映射到属性。

  • 写入csv

    使用CsvHelper写入CSV文件也非常容易。首先,您需要创建一个写入器并指定CSV文件的路径,然后使用该写入器的WriteRecords方法写入记录。例如:
using (var writer = new StreamWriter("path/to/csvfile.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(records);
}

在这个例子中,records是一个包含您要写入的记录的枚举器。

如果您的CSV文件包含标题行,您可以使用WriteHeader方法写入它们。

using (var writer = new StreamWriter("path/to/csvfile.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteHeader<MyRecordClass>();
csv.WriteRecords(records);
}

CsvHelper简单使用的更多相关文章

  1. CsvHelper文档-5配置

    CsvHelper文档-5配置 CsvHelper库被设计成快速且简单易用,但是有时候默认的是设置不符合要求,需要你自己改变一些东西.所以csvHelper内置了很多自定义设置选项来改变读写行为.特别 ...

  2. CsvHelper文档-2读

    CsvHelper文档-2读 这个库默认不需要做任何设置就可以很容易的使用它.如果你的类属性名称直接匹配csv的标题名称,那么可以按照下面的实例来用: (以下所有的代码都需要引用using csvhe ...

  3. 【造轮子】打造一个简单的万能Excel读写工具

    大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  6. 哪种缓存效果高?开源一个简单的缓存组件j2cache

    背景 现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的.我在项目中也开始接触一些缓存的需求. 开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务 ...

  7. 在Openfire上弄一个简单的推送系统

    推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...

  8. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  9. 使用 Nodejs 搭建简单的Web服务器

    使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...

  10. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

随机推荐

  1. php解析url并得到url中的参数及获取url参数的四种方式

    https://www.jb51.net/article/73900.htm 下面通过四种实例给大家介绍php url 参数获取方式. 在已知URL参数的情况下,我们可以根据自身情况采用$_GET来获 ...

  2. 配置tmux默认shell使用fish

    设置tmux创建新窗口的时候的默认的shell类型 编写~/.tmux.conf文件 set-option -g default-shell /usr/bin/fish # 或者你想要的任何其他 sh ...

  3. oracle的IP访问列表

    Windows版本Oracle 19c. 在sqlnet.ora中添加下面语句 tcp.validnode_checking=yes tcp.invited_nodes=(127.0.0.1,132. ...

  4. IM服务器:一个使用imserver服务器进行聊天的web端案例

    该案例中包含一个基于web网页的前端程序,该案例会使用websocket与IM服务器(imserver)进行通信. 一.环境准备 1.下载 "imserver网页调用案例",并解压 ...

  5. 搭建自己的OCR服务,第三步:PPOCRLabel标注工具安装

    一.安装说明 安装好了PaddleOCR后,还需要安装PPOCRLabel这个标注工具,想要自己训练模型的话,有个标注工具会起很大作用. 尤其是PPOCRLabel就是跟PaddleOCR配套的标注工 ...

  6. BUUCTF--Dangeous RSA(小e)

    对于e很小,可以直接采取爆破的手段,直接上代码 点击查看代码 #python3 ## -*- coding: utf-8 -*-# import binascii from gmpy2 import ...

  7. apisix~hmac-auth插件的使用

    hmac-auth插件需要和 Consumer 一起使用,API 的使用者必须将密匙添加到请求头中以验证其请求,下面介绍它的主要用法 参数 algorithm 算法 默认hmac-sha256 [&q ...

  8. 小白的第一篇blog

    Markdown学习 1.标题 要写标题可用#加空格,再下字,然后再用回车键. 2.字体 1.粗体打法:在文字两侧加两个* 如:hello world! 2.斜体打法:在文字两侧加一个* 如: hel ...

  9. Postman+Newman生成接口测试报告

    1.安装node 安装完后进入cmd输入node检验版本 2.安装newman 打开cmd-->输入npm install -g newman,然后输入newman -v验证版本 3.安装htm ...

  10. AI实战:Text_To_SQL+Prompt+数据库(MySQL)+MCP

    一.Text-to-SQL应用概述 什么是Text-to-SQL?Text-to-SQL也称为NL2SQL,是将自然语言查询转换为可在关系数据库上执行的SQL查询的技术. 其核心目标是准确捕捉并反映用 ...