C#—csv文件格式操作
- 其他
- 2025-09-11 15:21:02

C#—csv文件格式操作
目录
C#—csv文件格式操作
介绍
核心特点
结构化数据
C#操作csv示例:
写入CSV文件
读取CSV文件
CSV 的优缺点
常见使用场景
编码问题
winform操作csv文件格式实例
介绍
CSV(Comma-Separated Values,逗号分隔值)是一种简单且通用的文本文件格式,用于存储和交换表格数据(如电子表格或数据库内容)。它被广泛用于数据导入/导出、跨平台数据共享以及轻量级数据存储场景。
核心特点纯文本格式以 .csv 为扩展名,文件内容为纯文本,无需专用软件即可查看和编辑(如记事本、VS Code)。
结构化数据 每行表示一条记录(Record)。每个记录由字段(Field)组成,字段间用分隔符(逗号 ,\n换行)分隔。首行可选为表头(Header),描述字段名称。格式示列:使用记事本打开csv文件展示 ID,Name,Age,Email 1,John Doe,30,john@example 2,"Jane Smith, Jr.",25,jane@example 3,"Bob ""The Builder""",28,bob@example 使用wpf office打开csv文件展示 C#操作csv示例: 写入CSV文件 static void Main() { string filePath = "example.csv"; using (StreamWriter sw = new StreamWriter(filePath, Encoding.UTF8)) { sw.WriteLine("Name,Age,City \n"); // 写入表头 sw.WriteLine("Alice,30,New York \n"); // 写入数据行 sw.WriteLine("Bob,25,Los Angeles \n"); } } 读取CSV文件 static void Main() { string filePath = "example.csv"; using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8)) { while (!sr.EndOfStream) { string line = sr.ReadLine(); string[] values = line.Split('\n'); // 使用\n换行字符分割每行数据 Console.WriteLine($"Name: {values[0]}, Age: {values[1]}, City: {values[2]}"); } } } CSV 的优缺点 优点 缺点简单易读,兼容所有文本编辑器无数据类型定义(全为字符串)跨平台(Excel、数据库、编程语言均支持)无标准化规范(分隔符、编码可能不一致)适合大数据量快速导入导出不支持复杂结构(如嵌套数据)无二进制内容,体积小缺乏格式控制(如字体、颜色)常见使用场景 数据导入/导出将数据库表导出为 CSV,供其他系统使用。从 Excel 导出数据到第三方工具(如 Python、R)。数据交换在不同软件(如 Salesforce、邮件营销工具)间传递客户列表。日志记录存储结构化日志(如时间戳、事件类型、描述)。机器学习存储训练数据集(如鸢尾花数据集)。 编码问题
推荐使用 UTF-8 编码保存 CSV 文件,避免中文乱码。
StreamReader sr = new StreamReader(fileName, Encoding.UTF8); string s = sr.ReadToEnd(); // 读取数据winform操作csv文件格式实例
效果
当点击写入按钮时则向csv文件中写入一条数据,当点击读取时则读取出所有数据。
一、在winform界面中拖入2个按钮
二、封装csv操作类
public class CSVAPI { public void SaveData(string data,string result) { string path = Directory.GetCurrentDirectory() + "\\data"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string fileName = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv"; // 文件路径 if (!File.Exists(fileName)) // 如果csv文件不存在 { // FileStream 文件流 // 参数1 文件操作路径 // 参数2 FileMode Create 如果有则替换,如果没有 则新建 // 参数3 FileAccess.Write 写入的权限 FileStream fs = new FileStream(fileName,FileMode.Create,FileAccess.Write); // StreamWriter 写入工具 StreamWriter sw = new StreamWriter(fs,Encoding.Default); StringBuilder sb = new StringBuilder(); // 定义可变字符串,保存存储的数据 sb.Append("时间").Append(",").Append("姓名").Append(",").Append("事件"); sw.WriteLine(sb); sw.Close(); sw.Dispose(); fs.Close(); fs.Dispose(); } using (StreamWriter sw2 = new StreamWriter(fileName, true,Encoding.Default)) { StringBuilder sb = new StringBuilder(); sb.Append(DateTime.Now.ToString("HH-mm-ss")).Append(",").Append(data).Append(",").Append(result+"\n"); sw2.Write(sb.ToString()); } } /// <summary> /// 读取CSV /// </summary> /// <returns></returns> public string ReadData() { string path = Directory.GetCurrentDirectory() + "\\data"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string fileName = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv"; // 文件路径 if (!File.Exists(fileName)) { return "文件不存在"; } StreamReader sr = new StreamReader(fileName,Encoding.Default); string s = sr.ReadToEnd(); // 读取数据 sr.Close(); sr.Dispose(); return s; } }三、实现按钮事件
public partial class Form1 : Form { public Form1() { InitializeComponent(); } CSVAPI api = new CSVAPI(); /// <summary> /// 写入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { api.SaveData("吴亦凡","蹲完中国蹲加拿大"); } /// <summary> /// 读取 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { string s = api.ReadData(); MessageBox.Show(s); } }使用wpf office打开csv文件展示的效果
C#—csv文件格式操作由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C#—csv文件格式操作”