首页 > 其他分享 >CsvHelper:一个轻便高性能的Csv文件读写操作开源库!

CsvHelper:一个轻便高性能的Csv文件读写操作开源库!

时间:2024-06-05 13:00:29浏览次数:21  
标签:读写操作 CsvHelper using new NET Csv public

Csv是一种非常常见的文件格式,采用纯文本格式,不依赖于任何特定的软件或数据库,且文件体积小,易于使用。平常项目开发中,需要都会采用这种格式,这就涉及到Csv文件的读写操作。

下面介绍一个轻便高性能的Csv文件读写操作开源库。

01 项目简介

CsvHelper 是一个.Net开源库,这是一个强大且易于使用的工具,使得开发者可以非常方便处理 Csv文件。方便我们应用于数据导入导出、数据迁移、报告生成等一些应用场景。

02 项目特点

**简单的API:**提供了直观的 API 来读取和写入 CSV 文件,使得处理 CSV 数据变得更加容易。

**灵活的映射:**可以轻松地将 CSV 数据映射到 .NET 对象,反之亦然,这使得数据交换和持久化变得简单。

**强大的解析能力:**支持复杂的 CSV 文件解析,包括带标题的文件、动态类型处理等。

**广泛的支持:**适用于多种 .NET 平台,基于.NET Standard 2.0开发的。

03 使用方法

1、安装依赖库

Install-Package CsvHelper

2、写入Csv文件

using CsvHelper;
using System.Globalization;

//数据
var records = new List<Foo>
{
    new Foo { Id = 1, Name = "one" },
    new Foo { Id = 2, Name = "two" },
};

//写入文件
using (var writer = new StreamWriter(AppContext.BaseDirectory +  "file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(records);
}

/// <summary>
/// 模型定义
/// </summary>
public class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}

效果如下:

图片

3、读取Csv文件

using CsvHelper;
using CsvHelper.Configuration;
using CsvHelper.Configuration.Attributes;
using System.Globalization;

//读取文件
using (var reader = new StreamReader(AppContext.BaseDirectory + "file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    csv.Context.RegisterClassMap<FooMap>();
    var records = csv.GetRecords<Foo>();
    foreach(var record in records)
    {
        Console.WriteLine("Id:" + record.Id + ", Name:"+ record.Name);
    }
}

/// <summary>
/// 映射规则
/// </summary>
public class FooMap : ClassMap<Foo>
{
    public FooMap()
    {
        Map(m => m.Id);
        Map(m => m.Name);
    }
}

/// <summary>
/// 模型定义
/// </summary>
public class Foo
{
    public int Id { get; set; }

    public string Name { get; set; }
}

效果如下:

图片

04 项目地址

https://github.com/JoshClose/CsvHelper

- End -

推荐阅读

AutoFixture:.NET 的假数据生成工具

Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目

Plotly.NET:一个强大的、漂亮的.NET开源交互式图表库

OxyPlot:一个功能强大、漂亮.Net跨平台开源绘图库

NodaTime:一个.NET开源的强大日期和时间库

标签:读写操作,CsvHelper,using,new,NET,Csv,public
From: https://blog.csdn.net/daremeself/article/details/139469396

相关文章

  • 使用neo4j时,无法load csv数据,或者出现Writing in read access mode not allowed, Att
    当在使用neo4j时需要导入csv数据批量创建节点时,显示无法导入CSV文件,看看是什么问题1.首先检查文件是否导入import文件打开import文件夹的方式如图,首先点击图数据库一栏右边三个点,移到Openfolder,点击import打开import文件夹后,检查是否存在要load的文件。2.当需要的CSV文......
  • 通过Restful接口实现对数据库进行基本的读写操作
    一、创建springboot项目这里使用的springboot项目与我们上次使用的一样,所以创建方法跟下文一致即可。SpringBoot+MySQL的简单运用(HelloWorldAPI)-CSDN博客二、配置数据库连接2.1创建数据库首先我们要创建一个数据库,应用于本次项目。打开MySQL,输入密码登录。(MySQL安......
  • 应用程序的 Android 数据文件(.csv、.txt 等)将在运行时更改,应该放在哪里?
    我正在使用AndroidStudioJellyfish编写Kotlin。比方说,我有一个名为"database.csv"的文件,作为应用程序功能的一部分,我需要读写该文件。我不希望用户能够直接从其手机访问该文件。我曾尝试将其放置在assets和res/raw文件夹中,但发现在编译后无法对其进行写入。我看到一些......
  • 【python007】读取csv文件url多进程下载图片数据(最近更新中)
    1.熟悉、梳理、总结项目研发实战中的Python开发日常使用中的问题、知识点等2.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!3.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!4.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!......
  • spark sql导出数据为excel文件和csv文件
    一、利用to_csv函数导出数据为csv文件:df=spark.sql('''select*fromtable;''')df.toPandas().to_csv('table.csv',index=False)其中:index=False参数表示在保存时不包括行索引。二、利用to_excel函数导出数据为excel文件:df=spark.sql('''select*from......
  • linux 查看csv文件,按指定列聚合 排序
    在Linux中,你可以使用awk工具来查看CSV文件的内容,并按照指定的列进行聚合。awk是一种强大的文本处理工具,它可以处理文本文件中的数据,并根据条件执行相应的操作。以下是一个示例,假设你有一个名为data.csv的CSV文件,其中包含三列数据:姓名、年龄和性别,内容如下:姓名,年龄,性别张......
  • 使用shell脚本替换csv文件中的数据
    [observer@xxx-grey-openrestytest]$catfile.csvbeijing,beijing,lisi,10shanxi,xian,tom,6shanghai,shanghai,xiaoming,3guangdong,guangzhou,wangwu,8sichuan,chengdu,cat,5[observer@xxx-grey-openrestytest]$awk-F,-vOFS=,'$4>5{$4=3}{print......
  • python中使用win32com实现Excel转CSV
    Excel转csv可以使用pandas的to_excel、to_csv实现转换,但是当Excel文件较大时,pandas耗时会较多,可以考虑使用win32com实现importwin32com.clientxl=win32com.client.Dispatch("Excel.Application")xl.DisplayAlerts=Falsexl.Visible=Falsexl.Workbooks.Open(Filename=......
  • 用python字典统计CSV数据
    1.用python字典统计CSV数据的步骤和代码示例为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息。以下是一个详细的步骤和完整的代码示例:1.1步骤(1)导入csv模块。(2)打开CSV文件并读取数据。(3)初始化一个空字典来存储统计信息。......
  • pandas解析csv
    前提:pipinstallpandas 总结:用DataFrame接收二维数组,用Series接收一维数组。DataFrame[列名]=Series列的内容。 importpandasaspd...defreadCSV(self):file=""data=pd.read_csv(file,encoding='utf-8')#DataFrame用来接收二维数组(矩阵)......