C#实现读写CSV文件的方法详解
CSV文件是一种常见的数据存储格式,通常用来存储表格数据。在C#中,我们可以使用以下方法来读写CSV文件。
读取CSV文件
1.通过第三方库CsvHelper读取CSV文件
- 首先,你需要安装CsvHelper库,可以使用NuGet包管理器或者手动安装。
- 在程序中添加以下代码:
using CsvHelper;
using System.IO;
// 打开CSV文件
using var reader = new StreamReader("path/to/csv/file");
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
// 读取CSV文件
var records = csv.GetRecords<YourModel>();
// 遍历记录
foreach(var record in records)
{
// 处理每一行记录
}
- 示例代码中
YourModel
是你定义的CSV数据模型类,它应该包含CSV文件中每行数据的字段。例如,如果CSV文件中每行数据包含id
和name
两个字段,那么可以定义一个类如下:
public class Record
{
public int Id { get; set; }
public string Name { get; set; }
}
- CsvHelper会读取CSV文件的每一行数据,并将其映射到你定义的
YourModel
类中。你可以通过遍历records
集合来访问每一条记录。
2.通过.NET内置类库读取CSV文件
- 使用
StreamReader
打开CSV文件。 - 逐行读取CSV数据,并使用逗号进行分隔。
- 处理每一行数据。
using System.IO;
var records = new List<YourModel>();
using (var reader = new StreamReader("path/to/csv/file"))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
var record = new YourModel
{
Field1 = values[0],
Field2 = values[1],
// ...
};
records.Add(record);
}
}
写入CSV文件
1.通过第三方库CsvHelper写入CSV文件
- 先安装CsvHelper库。
- 在程序中添加以下代码:
using CsvHelper;
using System.IO;
var records = new List<YourModel>();
// 添加数据到列表中...
using var writer = new StreamWriter("path/to/csv/file");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(records);
- CsvHelper会将数据写入CSV文件中。
2.通过.NET内置类库写入CSV文件
- 打开CSV文件,使用
StreamWriter
对象写入数据。在写入每行数据时,要注意数据格式,必须使用逗号进行分隔。
using System.IO;
using (var writer = new StreamWriter("path/to/csv/file"))
{
foreach (var record in records)
{
writer.Write(record.Field1);
writer.Write(",");
writer.Write(record.Field2);
writer.Write(",");
// ...
writer.WriteLine();
}
}
- 写入完成后,关闭文件流。
示例
以下是一个读取CSV文件的完整示例:
using CsvHelper;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
public class Record
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
using var reader = new StreamReader("path/to/csv/file");
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
var records = csv.GetRecords<Record>();
foreach (var record in records)
{
Console.WriteLine($"{record.Id}, {record.Name}");
}
}
}
以下是一个写入CSV文件的完整示例:
using CsvHelper;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
public class Record
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
var records = new List<Record>
{
new Record { Id = 1, Name = "John" },
new Record { Id = 2, Name = "Jane" },
// ...
};
using var writer = new StreamWriter("path/to/csv/file");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(records);
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现读写CSV文件的方法详解 - Python技术站