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> /// ...
随机推荐
- springboot~JPA把ORM统一起来
JPA介绍 JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据.他的出现主要是为了简 ...
- 详解TypScript数据类型转换
最近在用TypeScript(后面简称TS),发现TS虽然语法和C#差不多但是在很多地方还是不够高级(和C#相比),这里主要聚焦在数据类型强转上面,直接看下面案例吧 string转number 案例如 ...
- 关于px,分辨率,ppi的辨析
概述 在本篇文章的开始,我先为大家解释一下这三个名词的概念. px全称为pixel--像素.pc及移动设备的屏幕就是通过往像素矩阵中填充颜色,从而在宏观上体现出图像.像素越小,图像越清晰. 分辨 ...
- python基础2--数据结构(列表List、元组Tuple、字典Dict)
1.Print函数中文编码问题 print中的编码:# -*- coding: utf-8 -*- 注:此处的#代表的是配置信息 print中的换行符,与C语言相同,为"\n" 2 ...
- 每周分享五个 PyCharm 使用技巧(一)
PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带 ...
- 数据结构——Java实现单链表
一.分析 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点由元素和指针构成.在Java中,我们可以将单链表定义成一个类,单链表的基 ...
- Redis入门简述
Redis 是一个开源的,使用 ANSI C (C语言)编写,高性能的 Key-Value(键值对) 的 NoSQL 数据库 NoSQL = Not Only SQL,意即“不仅仅是SQL”,是一项全 ...
- C# E店宝格格家接口对接
一.实现图片 二.实现通用方法 /// <summary> /// 调用通用方法 /// </summary> /// <param name="strURL& ...
- 魅族5.0以上设备(亲测有效)激活Xposed框架的流程
对于喜欢研究手机的哥们来说,大多时候会使用到Xposed框架及种种功能强大的模块,对于5.0以下的系统版本,只要手机能获得ROOT权限,安装和激活Xposed框架是比较简单的,但随着系统版本的持续更新 ...
- Mybatis学习---连接MySQL数据库
[目录]