You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中用CsvHelper读取CSV第15行起数据并映射到模型类

解决CsvHelper从指定行(第15行)开始读取CSV并映射到Model的方法

要实现跳过前14行、从第15行(列头)开始读取并映射到Model类,有两种可靠的方式,以下是具体实现:

方法一:通过配置直接跳过指定行数

这种方式最简单,直接在CsvConfiguration中设置SkipRows属性跳过前14行,CsvHelper会自动将第15行作为列头解析:

1. 定义Model类

先创建与CSV列对应的Model(按需调整属性):

public class UserData
{
    public string Username { get; set; }
    public int Age { get; set; }
    public string Email { get; set; }
}

2. 配置并读取CSV

using System.Globalization;
using System.IO;
using CsvHelper;
using CsvHelper.Configuration;

// 读取文件
using var streamReader = new StreamReader("your_data.csv");
using var csvReader = new CsvReader(streamReader, new CsvConfiguration(CultureInfo.InvariantCulture)
{
    SkipRows = 14, // 跳过前14行,第15行作为列头
    // 可选:如果列头与Model属性不完全匹配,可关闭默认验证(按需启用)
    HeaderValidated = null,
    MissingFieldFound = null
});

// (可选)自定义列映射(当列头和属性名不一致时使用)
public class UserDataMap : ClassMap<UserData>
{
    public UserDataMap()
    {
        Map(m => m.Username).Name("用户名称");
        Map(m => m.Age).Name("年龄");
        Map(m => m.Email).Name("邮箱地址");
    }
}

// 注册映射(如果使用了自定义映射)
csvReader.Context.RegisterClassMap<UserDataMap>();

// 读取所有数据并映射到Model
var records = csvReader.GetRecords<UserData>().ToList();

方法二:手动跳过行(更灵活)

如果前14行格式不规则,可手动循环跳过每行,再读取列头和数据:

using System.Globalization;
using System.IO;
using System.Collections.Generic;
using CsvHelper;

using var streamReader = new StreamReader("your_data.csv");
using var csvReader = new CsvReader(streamReader, CultureInfo.InvariantCulture);

// 手动跳过前14行
for (int i = 0; i < 14; i++)
{
    csvReader.Read();
}

// 读取列头
csvReader.ReadHeader();

// 注册自定义映射(如果需要)
csvReader.Context.RegisterClassMap<UserDataMap>();

// 逐行读取并映射
var records = new List<UserData>();
while (csvReader.Read())
{
    var record = csvReader.GetRecord<UserData>();
    records.Add(record);
}

注意事项

  • 确认第15行确实是正确的列头行,且列名与Model属性(或自定义映射)匹配
  • 如果CSV文件有特殊编码,在StreamReader中指定对应编码(如Encoding.UTF8、Encoding.GetEncoding("GB2312"))
  • 确保已通过NuGet安装最新稳定版的CsvHelper包

内容的提问来源于stack exchange,提问作者Yashwanth ArulMozhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 00:07:35