CsvHelper简单使用

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

posted @ 2023-05-03 16:47  JohnYang819  阅读(465)  评论(0编辑  收藏  举报