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日

相关文章

  • .Net行为型设计模式之观察者模式(Observer)

    .Net行为型设计模式之观察者模式(Observer) 观察者模式(Observer),是一种行为型设计模式,它定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。观察者模式中的被观察者和观察者之间是松耦合的,它们之间没有直接的耦合关系,而是通过抽象化的通知来进行交互。 观察者模式中主要有以下角色: Su…

    C# 2023年6月1日
    00
  • asp.net(C#)函数对象参数传递的问题

    ASP.NET是一种基于.NET框架的Web应用程序开发技术,而C#是一种强类型的编程语言。在ASP.NET(C#)中,函数对象参数传递是必不可少的组成部分。本文将详细介绍如何处理ASP.NET(C#)函数对象参数传递的问题。 什么是函数对象参数传递? 函数对象参数传递是指在C#中传递函数对象作为参数的过程。这种方式可以让我们更加灵活地处理业务逻辑,实现不同…

    C# 2023年6月1日
    00
  • C#实现飞行棋游戏

    C#实现飞行棋游戏攻略 1. 游戏规则概述 飞行棋是一种常见的棋类游戏,又称“飞行棋”,据传说源于古印度的游戏,起源于印度古董陀罗尼。其游戏规则如下: 1.1 游戏棋盘 游戏棋盘为正方形,格数为12×12。每个玩家有4个飞机,分为红、黄、蓝、绿四色。 1.2 开始游戏 游戏开始时,每个玩家的4架飞机都在停机坪上。每次掷骰子,6点时,可以先从停机坪起飞一架飞机…

    C# 2023年6月6日
    00
  • 详解c# 类的构造方法

    下面我来详细讲解一下“详解C#类的构造方法”的完整攻略。 什么是构造方法 C#中的构造方法是一种特殊的方法,它和类名相同,用于在对象创建时初始化对象。当我们创建一个类的对象时,会自动调用该类的构造方法。构造方法通常用来初始化对象,它可以在对象创建时进行一些必要的设置工作,例如分配内存、设置默认值等。如果没有手动定义构造方法,系统会默认提供一个无参构造方法来初…

    C# 2023年5月15日
    00
  • C#判断指定文件是否是只读的方法

    要判断指定文件是否为只读文件,有多种方式可以实现。下面介绍两种方法: 方法一:使用File类的GetAttributes方法及FileAttributes枚举值判断文件属性 File类提供了一些静态方法及属性,可实现对文件的基本操作功能。其中GetAttributes方法可获取文件的属性,包括只读、隐藏、系统、临时等属性。通过判断文件的属性是否包含FileA…

    C# 2023年6月1日
    00
  • jsonp格式前端发送和后台接受写法的代码详解

    下面是关于“jsonp格式前端发送和后台接受写法的代码详解”的完整攻略,包含两个示例。 1. JSONP简介 JSONP(JSON with Padding)是一种跨域数据交互的技术。它允许在不同域之间进行数据交互,而不会受到同源策略的限制。JSONP的原理是利用标签的跨域特性,通过在URL中添加一个回调函数名,让服务器返回一个JavaScript函数调用,…

    C# 2023年5月15日
    00
  • 用juery的ajax方法调用aspx.cs页面中的webmethod方法示例

    使用jQuery的ajax方法调用aspx.cs页面中的WebMethod方法需要经过以下步骤: 在aspx.cs文件中创建一个公共静态方法,并使用WebMethod属性进行标记。这个方法将被用来提供JSON格式数据给前端。 以下是一个简单的示例: using System.Web.Services; using System.Web.Script.Seri…

    C# 2023年6月1日
    00
  • C# Enum.GetValues()方法: 获取枚举类型的所有值

    C#中的Enum.GetValues()是一个方法,它可以用于获取枚举类型中所有可能的值。具体来说,它将返回一个包含枚举类型的所有可能值的数组。下面是更为详细的讲解。 方法作用 Enum.GetValues()主要用于以下两个方面: 获取枚举类型中所有可能的值 将一个枚举类型的所有可能值转换为数组,以方便使用 使用方法 Enum.GetValues()的使用…

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