C# 使用CsvHelper读取.csv文件
1,先到包管理器下载 安装CsvHelper。
2,创建一个与csv文件字段名称相同的类

public class SurveyInfoModel
{
public string DIST_CD { get; set; }
public string SURVEY_CD { get; set; }
public string SLSMAN_CD { get; set; }
public string SLSMAN_NAME { get; set; }
}
3,使用(2)步骤中创建的类,映射获取文件中全部记录(类字段必须与csv文件列名相同)
引用 FileEncoding.DetectFileEncoding(filePathCsv) ,要在在包管理器下载 安装SimpleHelpers.FileEncoding,或者直接默认 new StreamReader(filePathCsv, Encoding.Default);
//检测原文件编码的形式读入,或默认的
string filePathCsv="D:\Projects\test.csv";
StreamReader SRFile = new StreamReader(filePathCsv, FileEncoding.DetectFileEncoding(filePathCsv) ?? Encoding.Default);
var csv = new CsvReader(SRFile);//把 数据映射到 SurveyInfoModel,返回一个 IEnumerable<T> 对象
var records = csv.GetRecords<SurveyInfoModel>().ToList();
SRFile.Close(); //关闭文件
4,直接循环获取单独的字段
foreach (var r in records)
{
string dist_cd = r.DIST_CD; //直接获取字段
}
5,如果.csv列名与类字段名称不相同,那么可以定义一个映射匹配类,CSVHelper是自动根据你的类来自动映射匹配的
private sealed class SurveyInfoModelMap : ClassMap<SurveyInfoModel>
{
SurveyInfoModelMap() {
Map(m=>m.DIST_CD).Name("DIST_CD"); //使用文件列名称指定映射
Map(m => m.SURVEY_CD).Name("SURVEY_CD");
Map(m => m.SLSMAN_CD).Name("SLSMAN_CD");
Map(m => m.SLSMAN_NAME).Name("SLSMAN_NAME");
}
}
匹配类建好后,只需要在获取IEnumerable<T> 对象前配置映射匹配类:csv.Configuration.RegisterClassMap<SurveyInfoModelMap>();
//检测原文件编码的形式读入,或默认的
StreamReader SRFile = new StreamReader("D:\Projects\test.csv", FileEncoding.DetectFileEncoding(file) ?? Encoding.Default);
var csv = new CsvReader(SRFile); csv.Configuration.RegisterClassMap<SurveyInfoModelMap>(); //配置匹配类 //把 数据映射到 SurveyInfoModel,返回一个 IEnumerable<T> 对象
var records = csv.GetRecords<SurveyInfoModel>().ToList();
SRFile.Close(); //关闭文件
C# 使用CsvHelper读取.csv文件的更多相关文章
- C#使用Linq to csv读取.csv文件数据
前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...
- sparkR读取csv文件
sparkR读取csv文件 The general method for creating SparkDataFrames from data sources is read.df. This met ...
- VB6.0 读取CSV文件
最近做了一个Upload文件的需求,文件的格式为CSV,读取文件的方法整理了一下,如下: 1.先写了一个读取CSV文件的Function: '读取CSV文件 '假设传入的参数strFile=C:\Do ...
- php读取csv文件,在linux上出现中文读取不到的情况 解决方法
今,php读取csv文件,在linux上出现中文读取不到的情况,google,后找到解决办法<?phpsetlocale(LC_ALL, 'zh_CN');$row = 1;$handle = ...
- 使用univocity-parsers创建和读取csv文件
import com.univocity.parsers.csv.CsvFormat;import com.univocity.parsers.csv.CsvParser;import com.uni ...
- Python 读取csv文件到excel
朋友问我如何通过python把csv格式的文件另存为xls文件,自己想了想通过读取csv文件然后再保存到xls文件中即可,也许还有其他简单的方法,但这里也为了练习python语法及其他知识,所以采用了 ...
- 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法
1. 转换成CSV文件: http://www.dotnetgallery.com/lab/resource93-Export-to-CSV-file-from-Data-Table-in-Aspne ...
- java读取CSV文件添加到sqlserver数据库
在直接将CSV文件导入sqlserver数据库时出现了错误,原因还未找到,初步怀疑是数据中含有特殊字符.于是只能用代码导数据了. java读取CSV文件的代码如下: package experimen ...
- C#:StreamReader读取.CSV文件(转换成DataTable)
using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> /// ...
随机推荐
- RDIFramework.NET V3.3 Web版新增日程管理功能模块
功能描述 在RDIFramework.NET V3.3 Web版本我们新增了日程管理.基于月.周.日的日历视图,把安排到每一天的具体时间点,让每一天的时间都充分利用:甚至您也可以把个人非工作事项也安排 ...
- 从PRISM开始学WPF(三)Prism-Region-更新至Prism7.1
[7.1update]在开始前,我们先看下版本7.1中在本实例中的改动. 首先,项目文件中没有了Bootstrapper.cs,在上一篇的末尾,我们说过了,在7.1中,不见推荐使用Bootstrapp ...
- 搞懂MySQL InnoDB事务ACID实现原理
前言 说到数据库事务,想到的就是要么都做修改,要么都不做.或者是ACID的概念.其实事务的本质就是锁和并发和重做日志的结合体.那么,这一篇主要讲一下InnoDB中的事务到底是如何实现ACID的. 原子 ...
- 用v-bind:style时的问题
今天纠结了挺久一个问题,个人习惯是在HBuilder里先写好前端样式,在放.net去测试数据,但是发现一个问题 就是一个提示框跟随鼠标移动 提示框用v-bind:style绑定一个对象 DIV就是这句 ...
- 基于Windows服务的WCF
(1)创建WCF 代码示例: [ServiceContract] public interface ILimsDBService { [OperationContract] int ExecuteSq ...
- C# NuGet包管理命令
NuGet Package Manager Console 内置于 Visual Studio 在 Windows 2012 和更高版本. (不包含在 Visual Studio 用于 Mac 或 V ...
- SpringCloud-config分布式配置中心
为什么要统一管理微服务配置? 随着微服务不断的增多,每个微服务都有自己对应的配置文件.在研发过程中有测试环境.UAT环境.生产环境,因此每个微服务又对应至少三个不同环境的配置文件.这么多的配置文件,如 ...
- 如何利用GitHub设计一个炫酷的个人网站(含代码)
1.在开始制作之前我们先预览一下我的网站吧! 1.方式一: 由于是手机版的所以用手机访问下面的链接体验比较好一点: https://tom-shushu.github.io/MyWeb.github. ...
- CSS实现无外边框列表效果
方法一:使用外层容器切割 给每一个 li 设定右边框和下边框线 把ul放置在一个外层div中,设定div的宽高,通过overflow:hidden将一部分li的边框隐藏 此方法只需要计算父容器的宽高, ...
- Python 经典面试题汇总之框架篇
前端和框架 1.谈谈你对http协议的认识 浏览器本质,socket客户端遵循Http协议 HTTP协议本质:通过\r\n分割的规范,请求响应之后断开链接 ==> 短连接.无状态 具体: Htt ...