C#实现读写CSV文件的方法详解

C#实现读写CSV文件的方法详解

CSV文件是一种常见的数据存储格式,通常用来存储表格数据。在C#中,我们可以使用以下方法来读写CSV文件。

读取CSV文件

1.通过第三方库CsvHelper读取CSV文件

  1. 首先,你需要安装CsvHelper库,可以使用NuGet包管理器或者手动安装。
  2. 在程序中添加以下代码:
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)
{
    // 处理每一行记录
}
  1. 示例代码中YourModel是你定义的CSV数据模型类,它应该包含CSV文件中每行数据的字段。例如,如果CSV文件中每行数据包含idname两个字段,那么可以定义一个类如下:
public class Record
{
    public int Id { get; set; }
    public string Name { get; set; }
}
  1. CsvHelper会读取CSV文件的每一行数据,并将其映射到你定义的YourModel类中。你可以通过遍历records集合来访问每一条记录。

2.通过.NET内置类库读取CSV文件

  1. 使用StreamReader打开CSV文件。
  2. 逐行读取CSV数据,并使用逗号进行分隔。
  3. 处理每一行数据。
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文件

  1. 先安装CsvHelper库。
  2. 在程序中添加以下代码:
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);
  1. CsvHelper会将数据写入CSV文件中。

2.通过.NET内置类库写入CSV文件

  1. 打开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();
    }
}
  1. 写入完成后,关闭文件流。

示例

以下是一个读取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技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法

    C# 中实现输入汉字获取其拼音,通常有两种方法: 1.使用第三方库 pinyin4net pinyin4net 是一个流行的 C# 第三方库,用于将汉字转化为拼音。其基于 python 编写,提供了简单易用的 API。 安装过程 可以通过 NuGet 安装 pinyin4net 包,也可以直接到官网下载源代码。 具体安装步骤: 在 Visual Studio…

    C# 2023年6月7日
    00
  • C#深拷贝方法探究及性能比较(多种深拷贝)

    C#深拷贝方法探究及性能比较(多种深拷贝) 什么是深拷贝 在 C# 的开发中,经常需要复制一份对象,以便于对该对象进行修改而不影响原来的对象。浅拷贝(shallow copy)只是简单地复制了一份对象的引用,而不是实际的对象,原始对象和副本对象共享引用类型的成员变量。而深拷贝(deep copy)则会创建一份新的对象,并复制原始对象所有的成员变量,包括引用类…

    C# 2023年5月31日
    00
  • jQuery与Ajax以及序列化

    jQuery是一个JavaScript库,它简化了JavaScript的编写,提供了许多实用的功能。其中,Ajax和序列化是jQuery中常用的两个功能。本文将提供使用jQuery进行Ajax请求和序列化的完整攻略,包括创建Ajax请求、序列化表单数据、处理响应等。同时,本文还提供两个示例,演示如何使用jQuery进行Ajax请求和序列化表单数据。 创建Aj…

    C# 2023年5月15日
    00
  • C# Razor语法规则

    C# Razor语法规则是一种在ASP.NET Core中使用Razor模板引擎进行动态HTML视图编写的语法规则。下面是详细的攻略。 Razor语法介绍 Razor语法是一种和HTML混合在一起的文本模板渲染引擎。可以方便地集成C#代码,在执行时被解析为可执行的C#代码,并且能够自动地在视图中生成HTML标记。 Razor特定字符 以下是Razor特定的示…

    C# 2023年5月31日
    00
  • asp.net中c#自定义事件的实现方法详解

    下面是关于“asp.net中c#自定义事件的实现方法详解”的完整攻略: 1.什么是自定义事件? 在C#中,事件是一种对象,它用于发现并应答来自其他对象或应用程序的操作和请求。这种情况下,事件的发生通常由一个委托来表示,这个委托实际上是一组方法。自定义事件是自己创建委托和事件处理程序的机会,使事件和同一应用程序中其他组件的使用更加方便。 2.创建自定义事件 要…

    C# 2023年5月31日
    00
  • c#目录操作示例(获取目录名称 获取子目录)

    下面我来详细讲解一下“c#目录操作示例(获取目录名称 获取子目录)”的完整攻略。 获取目录名称 获取目录名称可以使用Path类中的GetDirectoryName方法。该方法接收一个字符串参数,表示一个文件或目录的路径,返回该路径所在的目录的路径字符串。 示例代码如下: string path = @"C:\Users\Administrator\…

    C# 2023年6月1日
    00
  • C#基于WebSocket实现聊天室功能

    下面是C#基于WebSocket实现聊天室功能的完整攻略: 一、准备工作 在进行C#基于WebSocket实现聊天室功能前,我们需要做好以下准备工作: 1. 安装.Net环境 需要在本地安装.Net环境,建议安装.Net Core版本,以确保兼容性和稳定性。 2. 安装WebSocket库 需要在项目中引入WebSocket库,可以使用Nuget包管理器进行…

    C# 2023年6月6日
    00
  • C#异步原理详情

    C#异步原理详情 什么是异步? 在C#语言中,异步是指程序不必等待某个操作完成,而是可以继续执行其他操作。在等待那个操作完成时,程序可以执行一些其他的操作。异步操作可以大大提高程序的响应速度。 异步方法的定义 在C#中,异步方法就是一个标记为async的方法。对于标记为async的方法,编译器会在编译时生成一个状态机,完成异步操作。 异步方法的原理 当调用异…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部