CsvExport:一个.Net高性能、低内存的CSV导出开源库

玩点科技新鲜事 2024-08-16 16:53:24

我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。

在我们项目开发中,导出CSV数据功能是非常常见的。

今天推荐一个高性能、低内存的CSV导出开源库。

01

项目简介

CsvExport是一个基于C#非常简单和快速的CSV导出开源库。

该开源库的核心特点:

导出功能兼容性高(自动检测分隔符,友好裁剪行列和值以提高兼容性)导出的内容会自动转义逗号、引号和多行文本导出的内容以时区安全格式导出日期极其易于使用.NET Standard 2.0库(兼容.NET Core和.NET Framework)比CsvHelper快30倍内存使用量仅为CsvHelper的四分之一

02

使用方法

1、安装依赖库

Install-Package CsvExport

2、基本导出

using Csv;var myExport = new CsvExport();// 添加第一行数据myExport.AddRow();myExport["Region"] = "Los Angeles, USA";myExport["Sales"] = 100000;myExport["Date Opened"] = new DateTime(2003, 12, 31);// 添加第二行数据myExport.AddRow();myExport["Region"] = "Canberra \"in\" Australia"; // 注意转义双引号myExport["Sales"] = 50000;myExport["Date Opened"] = new DateTime(2005, 1, 1, 9, 30, 0);//导出文件myExport.ExportToFile("myExport.csv");

效果:

3、使用List对象

using Csv;var list = new List<Foo>{ new Foo { Region = "Los Angeles", Sales = 123321, DateOpened = DateTime.Now }, new Foo { Region = "Canberra in Australia", Sales = 123321, DateOpened = DateTime.Now },};var myExport = new CsvExport();myExport.AddRows(list);string csv = myExport.Export();//导出文件myExport.ExportToFile("myExport.csv");public Foo{ public string Region { get; set; } public int Sales { get; set; } public DateTime DateOpened { get; set; }}

3、配置是否包含表头和列名

var myExport = new CsvExport( columnSeparator: ",", includeColumnSeparatorDefinitionPreamble: false, includeHeaderRow: false);

效果:

4、Asp.Net 导出CSV文件

var myExport = new CsvExport();myExport.AddRow();myExport["Region"] = "Los Angeles, USA";myExport["Sales"] = 100000;myExport["Date Opened"] = new DateTime(2003, 12, 31);myExport.AddRow();myExport["Region"] = "Canberra \"in\" Australia";myExport["Sales"] = 50000;myExport["Date Opened"] = new DateTime(2005, 1, 1, 9, 30, 0);///ASP.NET MVC 示例return File(myExport.ExportAsMemoryStream(), "text/csv", "results.csv");

03

项目地址

https://github.com/jitbit/CsvExport

- End -

推荐阅读

0 阅读:0

玩点科技新鲜事

简介:感谢大家的关注