编辑
2025-09-28
C#
00

目录

摘要
正文
CSV文件操作通用类
使用CSV文件操作通用类

摘要

在C#中,我们可以使用System.IO命名空间提供的类和方法来操作CSV(逗号分隔值)文件。以下是一个通用的CSV文件操作类的示例代码,详细说明了如何实现常见的读取和写入CSV文件的功能。

正文

CSV文件操作通用类

C#
public class CsvFile { private string filePath; private char delimiter; public CsvFile(string filePath, char delimiter = ',') { this.filePath = filePath; this.delimiter = delimiter; } public List<string[]> ReadAll(System.Text.Encoding encoding) { List<string[]> data = new List<string[]>(); try { using (StreamReader reader = new StreamReader(filePath, encoding) { while (!reader.EndOfStream) { string line = reader.ReadLine(); string[] values = line.Split(delimiter); data.Add(values); } } } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } return data; } public void WriteAll(List<string[]> data) { try { using (StreamWriter writer = new StreamWriter(filePath)) { foreach (string[] values in data) { string line = string.Join(delimiter.ToString(), values); writer.WriteLine(line); } } } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } }

上述代码定义了一个CsvFile类,用于读取和写入CSV文件。构造函数接受文件路径和可选的分隔符参数,默认为逗号。ReadAll方法读取整个CSV文件并返回一个包含每行数据的List<string[]>对象。WriteAll方法将给定的数据写入CSV文件。

使用CSV文件操作通用类

C#
static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); string filePath = "D:\\BaiduSyncdisk\\11Test\\测试导入数据.csv"; CsvFile csvFile = new CsvFile(filePath); // 读取CSV文件,中文时可能需要用到GB2312 List<string[]> data = csvFile.ReadAll(Encoding.GetEncoding("GB2312")); foreach (string[] values in data) { Console.WriteLine(string.Join(", ", values)); } filePath = "D:\\BaiduSyncdisk\\11Test\\test.csv"; csvFile = new CsvFile(filePath); // 写入CSV文件 List<string[]> newData = new List<string[]> { new string[] { "John", "Doe", "john.doe@example.com" }, new string[] { "Jane", "Smith", "jane.smith@example.com" } }; csvFile.WriteAll(newData); }

如是需要用Gb2312在Core下需要先安装以下包

image.png

上述代码演示了如何使用CsvFile类来读取和写入CSV文件。首先,我们创建一个CsvFile对象并指定CSV文件的路径。然后,我们使用ReadAll方法读取CSV文件的内容,并通过WriteLine方法打印出每行数据。接下来,我们创建一个新的数据列表newData,并使用WriteAll方法将其写入CSV文件。

image.png

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!