C# CSV文件读写的实现攻略
CSV(Comma Separated Values)是一种常用的文件格式,以逗号作为分隔符并且每行数据独占一行,适合于数据交换和数据存储。下面是实现CSV文件读写的步骤。
步骤1: 引入CSV文件格式处理库
C#中有很多好用的CSV文件格式处理库可以选择,比如:CsvHelper、LINQ to CSV等,我这里以CsvHelper作为例子进行讲解。可以在NuGet软件包管理器中搜索并安装CsvHelper。
Install-Package CsvHelper
步骤2: 读取CSV文件
示例1:读取包含标题行的CSV文件
下面的示例演示了如何读取包含标题行的CSV文件。假设下面的csv文件:
Name,Age,Gender
John,23,Male
Lisa,25,Female
Michael,29,Male
- 引入CsvHelper库并创建读取器
using CsvHelper;
using System.IO;
// ...
var reader = new StreamReader("path/to/your/csv/file.csv");
var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
- 将读取器转化为包裹自定义类型的可枚举对象
using CsvHelper.Configuration.Attributes;
public class Person
{
[Name("Name")]
public string Name { get; set; }
[Name("Age")]
public int Age { get; set; }
[Name("Gender")]
public string Gender { get; set; }
}
// ...
csv.Context.RegisterClassMap<PersonMap>();
var records = csv.GetRecords<Person>();
其中PersonMap类需要继承CsvClassMap类,并通过Add函数指定对应的属性名与文件列名的关系,例如:
using CsvHelper.Configuration;
public class PersonMap : CsvClassMap<Person>
{
public PersonMap()
{
Map(m => m.Name).Name("Name");
Map(m => m.Age).Name("Age");
Map(m => m.Gender).Name("Gender");
}
}
示例2:读取不包含标题行的CSV文件
下面的示例演示了如何读取不包含标题行的CSV文件。假设下面的csv文件:
John,23,Male
Lisa,25,Female
Michael,29,Male
- 引入CsvHelper库并创建读取器
using CsvHelper;
using System.IO;
// ...
var reader = new StreamReader("path/to/your/csv/file.csv");
var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
- 直接将读取器转化为Person类型的可枚举对象
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
// ...
csv.Configuration.HasHeaderRecord = false;
var records = csv.GetRecords<Person>();
步骤3:写入CSV文件
下面的示例演示了如何将Person类的对象列表写入到CSV文件中。
using CsvHelper;
using System.IO;
// ...
List<Person> people = new List<Person>
{
new Person { Name = "John", Age = 23, Gender = "Male" },
new Person { Name = "Lisa", Age = 25, Gender = "Female" },
new Person { Name = "Michael", Age = 29, Gender = "Male" }
};
using var writer = new StreamWriter("path/to/your/csv/file.csv", false, Encoding.UTF8);
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(people);
以上就是C#中CSV文件读写的实现攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# CSV文件读写的实现 - Python技术站