发现一个比较好用的处理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);
}
标签:CSV,records,简单,new,CsvHelper,使用,var,using,csv
From: https://www.cnblogs.com/johnyang/p/17369281.html