本资源提供一套简洁高效的C#语言实现的CSV文件读取与写入功能模板代码,适用于数据导入导出等场景,帮助开发者快速集成CSV处理功能。
在C#编程中,CSV(Comma Separated Values)文件是一种常见的数据存储格式,用于交换表格数据。这种格式简单易用,因为它的结构与电子表格类似,每行代表一行记录,列之间用逗号分隔。C#提供了多种方式来处理CSV文件的读写操作,包括使用内置的StreamReader和StreamWriter类以及第三方库如CsvHelper。
一、C# 内置方法读取和写入CSV
1. **读取CSV**:
使用StreamReader类可以从CSV文件中逐行读取数据。你需要打开文件流,然后逐行读取。每行数据可以被分割成字符串数组,再进一步解析为需要的类型。以下是一个基本示例:
```csharp
using System.IO;
string filePath = path_to_your_file.csv;
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
string[] values = line.Split(,);
处理values数组,例如存入DataTable或List
}
}
```
2. **写入CSV**:
使用StreamWriter类可以将数据写入CSV文件。同样,你需要创建一个StreamWriter实例,然后逐行写入数据。确保在逗号后添加每个值,并在行尾添加换行符。以下是一个简单的写入示例:
```csharp
using (StreamWriter writer = new StreamWriter(filePath))
{
假设我们有数据列表
List data = new List();
foreach (string[] record in data)
{
writer.WriteLine(string.Join(,, record));
}
}
```
二、CsvHelper库
CsvHelper是一个流行的C# CSV处理库,它提供了一种更简洁的方式来读写CSV文件,并支持自动类型转换和错误处理。
1. **读取CSV**:
使用CsvReader类,你可以直接将数据读入到强类型的数据集合中,如`List`或`DataTable`。
```csharp
using CsvHelper;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
public class Record
{
public string Field1 { get; set; }
public int Field2 { get; set; }
}
string filePath = path_to_your_file.csv;
using (var reader = new StreamReader(filePath))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords();
foreach (var record in records)
{
访问并处理记录
}
}
```
2. **写入CSV**:
使用CsvWriter类,你可以方便地将数据写入CSV文件。
```csharp
using (var writer = new StreamWriter(filePath))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
List records = GetYourData();
csv.WriteRecords(records);
}
```
以上就是使用C#进行CSV文件读取和写入的基本模板代码。根据实际需求,你可以进行适当的修改和扩展,例如添加错误处理、自定义分隔符等。在处理大量数据时,请考虑使用异步操作以提高性能。此外,在需要处理复杂的数据格式的情况下,可能还需要对数据进行额外的预处理或后处理。在开发过程中,请记得测试各种边界条件,确保程序的健壮性。