Skip to content

ronnygunawan/csv-serializer

Repository files navigation

CsvSerializer: Source-Generated CSV Serializer for .NET

NuGet

Installation

Package Manager Console:

Install-Package RG.CsvSerializer

Usage

using Csv;

// Serialize collection to CSV string
string csv = CsvSerializer.Serialize(items, withHeaders: true);

// Deserialize CSV string to array
Item[] items = CsvSerializer.Deserialize<Item>(csv, hasHeaders: true);

With custom delimiter:

Item[] items = CsvSerializer.Deserialize<Item>(csv, hasHeaders: true, separator: ';');

With custom header name and date format:

class Product {
    public string Name { get; set; }
    
    [CsvColumn("Price")]
    public decimal PriceBeforeTaxes { get; set; }
    
    [CsvColumn("Added", DateFormat = "dd/MM/yyyy")]
    public DateTime Added { get; set; }

    [CsvIgnore]
    public Category Category { get; set; }
}

Serializing to stream:

CsvSerializer.Serialize(streamWriter, items, withHeaders: true);

Deserializing from stream:

IEnumerable<Item> items = CsvSerializer.Deserialize<Item>(streamReader, hasHeaders: true);

Supported Property Types

bool
bool?
byte
byte?
sbyte
sbyte?
short
short?
ushort
ushort?
int
int?
uint
uint?
long
long?
ulong
ulong?
float
float?
double
double?
decimal
decimal?
string
char // serialized as quoted string
char? // serialized as quoted string
DateTime
DateTime?
DateTimeOffset // serialized as quoted string
DateTimeOffset? // serialized as quoted string
TimeSpan // serialized as quoted string
TimeSpan? // serialized as quoted string
Guid // serialized as quoted string
Guid? // serialized as quoted string
Uri // serialized as quoted string
Enum // serialized as unquoted string
Enum? // serialized as unquoted string

About

string csv = CsvSerializer.Serialize(items);

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages