首页 > 其他分享 >CsvHelper简单使用

CsvHelper简单使用

时间:2023-05-03 16:55:32浏览次数:34  
标签:CSV records 简单 new CsvHelper 使用 var using csv

发现一个比较好用的处理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);
}

标签:CSV,records,简单,new,CsvHelper,使用,var,using,csv
From: https://www.cnblogs.com/johnyang/p/17369281.html

相关文章

  • 简单工厂模式(Static Factory Method)
    创建性设计模式——简单工厂模式(StaticFactorymethod)模式动机只需要知道参数的名字则可得到相应的对象软件开发时,有时需要创建一些来自于相同父类的类的实例。可以专门定义一个类(工厂)负责创建这些类的实例。可以通过传入不同的参数从而获得不同的对象。Java中可以将创建其......
  • Linux如何正确使用共享文件夹
    Linux如何正确使用共享文件夹1.首先输下面命令查看是否真的设置成功共享文件夹vmware-hgfsclient如果确实已经设置过共享文件夹将输出window下共享文件夹名字z@ubuntu:~$vmware-hgfsclientshare2.确认自己已设置共享文件夹后输入下面的命令//如果之前没有命令包则先执行s......
  • kubevirt实验部署:k8s1.23.17+kube-ovn+nfs+kubevirt+ceph 集成使用
    标签(空格分隔):kubernetes系列一:kubevirt的简介KubeVirt是一个Kubernetes插件,它为Kubernetes提供了在与容器相同的基础结构上提供、管理和控制虚拟机的能力。KubeVirt是由云原生计算基金会(CNCF)赞助的开源项目,目前正处于孵化阶段。KubeVirt使Kubernetes能够使用与容器化工作负......
  • 【算法】LRU 最近最少使用算法
    1 前言上节我们介绍了几个页面替换算法,也就是一种淘汰策略,这节我们就看一种新的算法:LRU哈。2  LRULRU(Least Recently Used,最近最少使用)算法根据页面的历史请求记录来进行淘汰页面,其核心思想是“如果页面数据最近被访问过,那么将来被访问的几率也更高”。基于这个思想,会......
  • 记录一次C#在arm64的Ubuntu下安装使用selenium的过程
    手头上有一台没用的安卓手机,想着安装Ubuntu当爬虫服务器用,安卓手机root后使用delopy安装启动Ubuntu系统这些前置过程就不谈了重点谈怎么在ssh下安装使用selenium的过程首先我们安装aptitude这个软件包管理库,这个库相对于apt功能,对软件的依赖处理更加优秀,且使用方式和apt一样su......
  • Micro 购买流程,从使用到选型,从购买到售后,全程为您保驾护航
    深圳微元科技Micro系列组件实行统一定价标准,进行明码实价销售。中国市场的价格由产品价格和软件产品增值税组成,我们会为客户提供1%的增值税专用发票。客户享有从购买之日起,免费获取一年内的产品大版本的升级与维护版本。    1.选择产品         依据我们的......
  • Git使用
    常规命令配置gitconfig--list上传本地代码文件到git仓库主要命令:gitinit(初始化仓库)gitadd.(这里的.表示添加所有文件,也可以自定义添加,到git暂存区)gitcommit-m‘添加的注释信息’  (暂存区内容添加到本地仓库)gitremoteaddorigin‘url’gitpu......
  • HashiCorp官宣:禁止国内使用其旗下Consul等开源软件?
    近日,HashiCorp官网发布了一条软件评估条款:请注意,中国出口管控条例禁止HASHICORP在中华人民共和国境内销售或以其他方式提供企业版VAULT。鉴于此原因,未经HASHICORP的书面同意,不得在中华人民共和国境内使用、部署或安装HASHICORP的VAULT企业版本软件。(条款链接:https://www.hashic......
  • 使用volatility3识别进程上下文——识别进程名欺骗、父进程欺骗、进程镂空(进程掏空)
     注意:我自己使用vol3实验了下,pslist和pstree都看不到进程的完整磁盘路径,但是使用dlllist可以。如下:PSD:\Application\volatility3-stable>python.\vol.py-fD:\book\malwarecookbook-master\malwarecookbook-master\15\6\prolaco.vmem\prolaco.vmemwindows.dlllist--......
  • Ceph-RGW使用
    1.CephRgw创建1.1打标签主要作用是根据标签决定rgw运行在那些机器上cephorchhostlabeladdstorage03rgwcephorchhostlabeladdstorage02rgw1.2启动rgwcephorchapplyrgwtest_rgwdefault--placement=label:rgw--port=80001.3安装rgw工具aptinst......