CsvExport 2.0.1
dotnet add package CsvExport --version 2.0.1
NuGet\Install-Package CsvExport -Version 2.0.1
<PackageReference Include="CsvExport" Version="2.0.1" />
paket add CsvExport --version 2.0.1
#r "nuget: CsvExport, 2.0.1"
// Install CsvExport as a Cake Addin #addin nuget:?package=CsvExport&version=2.0.1 // Install CsvExport as a Cake Tool #tool nuget:?package=CsvExport&version=2.0.1
CsvExport
A very simple and very fast CSV-export tool for C#.
Features
- Excel-compatible export (separator detected automatically, friendly-trimming rows and values for compatibility)
- Escapes commas, quotes, multiline text
- Exports dates in timezone-proof format
- Extremely easy to use
- NET Standard 2.0 library (compatible with both .NET Core and .NET Framework)
- 30 times faster than CsvHelper
- 4-times less memory usage
Benchmarks
Method | Mean | Error | StdDev | Gen0 | Gen1 | Allocated |
---|---|---|---|---|---|---|
😟 CsvHelper | 1,300.38 us | 32.043 us | 1.756 us | 17.5781 | 7.8125 | 114.25 KB |
✅ CsvExport_Manual | 31.22 us | 5.750 us | 0.315 us | 4.7607 | 0.2441 | 29.37 KB |
✅ CsvExport_Typed | 52.68 us | 1.453 us | 0.080 us | 4.7607 | 0.1221 | 29.46 KB |
This benchmark is generating a 100-line CSV file with 4 columns. Check the "SpeedBenchmarks" code.
Usage examples:
Install via Nuget Install-Package CsvExport
For "manual" CSV ad-hoc generation use this:
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 action example
return File(myExport.ExportToBytes(), "text/csv", "results.csv");
For generating CSV out of a typed List<T>
of objects:
public class Foo
{
public string Region { get; set; }
public int Sales { get; set; }
public DateTime DateOpened { get; set; }
}
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();
Configuring is done via constructor parameters:
var myExport = new CsvExport(
columnSeparator: ",",
includeColumnSeparatorDefinitionPreamble: true, //Excel wants this in CSV files
includeHeaderRow: true
);
Also, methods ExportToFile
and ExportToBytes
offer an optional encoding parameter.
License
The code is licensed under MIT License.
Sucessfully tested for years in production with our Jitbit Helpdesk Ticketing System
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on CsvExport:
Repository | Stars |
---|---|
RaythaHQ/raytha
Raytha is a powerful CMS with an easy-to-use interface and fast performance. It offers custom content types, a template engine, and various access controls. It supports multiple storage providers and an automatically generated REST API. Upgrade your development workflow with Raytha.
|