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> /// ...
随机推荐
- C#委托、事件、线程
这是几个简单的例子,但是实际的开发中委托还还只在反射时用到过,事件的话只自己做了一次,并且还是特意去用的 ,实际上可以不用.线程的话,因为需要,所以用的会多点,这里主要是WS上的线程. 委托 在前面的 ...
- nodejs 开发企业微信第三方应用入门教程
最近公司要开发企业微信端的 Worktile,以前做的是企业微信内部应用,所以只适用于私有部署客户,而对于公有云客户就无法使用,所有就准备开发企业微信的第三方应用,本文主要介绍在调研阶段遇到的山珍海味 ...
- 通过 UI 管理 docker
Docker 正在被用在越来越多的场景中,对于不太习惯命令行工具的朋友来说,docker cli 用起来可能会比较吃力.本文笔者将介绍一个功能强大的 docker web 客户端:portainer( ...
- java锁与监视器概念 为什么wait、notify、notifyAll定义在Object中 多线程中篇(九)
在Java中,与线程通信相关的几个方法,是定义在Object中的,大家都知道Object是Java中所有类的超类 在Java中,所有的类都是Object,借助于一个统一的形式Object,显然在有些处 ...
- python 文件和目录操作题库
1. 把一个目录下所有的文件删除,在所有的目录下新建一个a.txt的文件,并在文件下写入"python"关键字. 解题思路: 1.如果目录存在则切换进入目录 ...
- SpringMVC+Mybatis 如何配置多个数据源并切换?
最近公司一个项目需要连接两个数据库(A和B)操作,有的模块查询A库,有的模块查询B库,因此需要改造下,项目后台用的是SpringMVC+Mybatis+MySQL架构,折腾了两天后终于搞定了,在这里记 ...
- 常用vi编辑器命令行
游标控制: h 游标向左移 j 游标向下移 k 游标向上移 l(or spacebar) 游标向右移 w 向前移动一个单词 b 向后移动一个单词 e 向前移动一个单词,且游标指向单词的末尾 ( 移到当 ...
- iOS视频边下载边播放
随着视频行业的发展,很多用户对于观看体验也有了更高的要求,以前的习惯是下载好了在观看,而现在是希望1分钟都不要等,ZUI好一边看着一边下载,等把这个视频看完也下载完了,也就是我们常说的“视频边下载边播 ...
- Python实例----------每日一贴
def function_tips(): '''功能:每天输出一条励志文字 ''' import datetime # 导入日期时间类 # 定义一个列表 mot = ["今天星期一:\n人生 ...
- 升级WIN10 (9879)后IE无响应的解决办法
身为程序猿,当然有了新系统就要尝尝鲜,有WIN8时,哥是朋友圈第一个用的,有WIN8.1时哥也是第一个升级的. 现在WIN10来了,当然也得赶紧尝尝鲜.直接下载了 9879版的预览版本安装. 要说WI ...