C#:
处理CSV文件

如何操作:

在C#中处理CSV文件可以通过System.IO命名空间来完成基本操作,对于更复杂的操作或处理大型文件,可能会考虑使用第三方库如CsvHelper。以下是使用这两种方法从CSV文件中读取和向CSV文件写入的示例。

使用System.IO读取CSV文件

using System;
using System.IO;

class ReadCSV
{
    static void Main()
    {
        string filePath = @"路径\到\你的\文件.csv";
        // 读取CSV文件的所有行
        string[] csvLines = File.ReadAllLines(filePath);
        
        foreach (string line in csvLines)
        {
            string[] rowData = line.Split(',');
            Console.WriteLine($"第一列:{rowData[0]},第二列:{rowData[1]}");
        }
    }
}

示例输出:

第一列:姓名,第二列:年龄
第一列:约翰·多,第二列:30

使用System.IO写入CSV文件

using System;
using System.Collections.Generic;
using System.IO;

class WriteCSV
{
    static void Main()
    {
        string filePath = @"路径\到\你的\输出文件.csv";
        var lines = new List<string>
        {
            "姓名,年龄",
            "约翰·多,30",
            "简·史密斯,25"
        };
        
        File.WriteAllLines(filePath, lines);
        Console.WriteLine("已写入CSV文件。");
    }
}

示例输出:

已写入CSV文件。

使用CsvHelper读取CSV

首先,使用NuGet包管理器将CsvHelper包添加到你的项目中。

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Linq;
using CsvHelper.Configuration;

class ReadCSVWithCsvHelper
{
    static void Main()
    {
        string filePath = @"路径\到\你的\文件.csv";

        using (var reader = new StreamReader(filePath))
        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
        {
            var records = csv.GetRecords<dynamic>().ToList();
            foreach (var record in records)
            {
                Console.WriteLine($"第一列:{record.Name},第二列:{record.Age}");
            }
        }
    }
}

示例输出:

第一列:约翰·多,第二列:30
第一列:简·史密斯,第二列:25

使用CsvHelper写入CSV

using CsvHelper;
using System.Globalization;
using System.IO;
using System.Collections.Generic;
using CsvHelper.Configuration;

class WriteCSVWithCsvHelper
{
    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

    static void Main()
    {
        string filePath = @"路径\到\你的\输出文件.csv";
        var records = new List<Person>
        {
            new Person { Name = "约翰·多", Age = 30 },
            new Person { Name = "简·史密斯", Age = 25 }
        };

        using (var writer = new StreamWriter(filePath))
        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            csv.WriteRecords(records);
        }
        
        Console.WriteLine("使用CsvHelper写入CSV文件。");
    }
}

示例输出:

使用CsvHelper写入CSV文件。