# CsvHelper

[![Join the chat at https://gitter.im/CsvHelper/Lobby](https://badges.gitter.im/CsvHelper/Lobby.svg)](https://gitter.im/CsvHelper/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Backers on Open Collective](https://opencollective.com/csvhelper/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/csvhelper/sponsors/badge.svg)](#sponsors) 
<a href="https://www.nuget.org/packages/CsvHelper"><img src="https://img.shields.io/nuget/v/CsvHelper.svg" alt="NuGet Version" /></a> 
<a href="https://www.nuget.org/packages/CsvHelper"><img src="https://img.shields.io/nuget/dt/CsvHelper.svg" alt="NuGet Download Count" /></a>

A library for reading and writing CSV files. Extremely fast, flexible, and easy to use. Supports reading and writing of custom class objects.

## Install

### Package Manager Console

```
PM> Install-Package CsvHelper
```

### .NET CLI Console

```
> dotnet add package CsvHelper
```

## Documentation

http://joshclose.github.io/CsvHelper/

### Building the Documentation

Run the `build-docs.cmd` file.

## License

Dual licensed

Microsoft Public License (MS-PL)

http://www.opensource.org/licenses/MS-PL

Apache License, Version 2.0

http://opensource.org/licenses/Apache-2.0

## Contributing

Want to contribute? Great! Here are a few guidelines.

1. If you want to do a feature, post an issue about the feature first. Some features are intentionally left out, some features may already be in the works, or I may have some advice on how I think it should be done. I would feel bad if time was spent on some code that won't be used.
2. If you want to do a bug fix, it might not be a bad idea to post about it too. I've had the same bug fixed by multiple people at the same time before.
3. All code should have a unit test. If you make a feature, there should be significant tests around the feature. If you do a bug fix, there should be a test specific to that bug so it doesn't happen again.
4. Pull requests should have a single commit. If you have multiple commits, squash them into a single commit before requesting a pull.
5. Try and follow the code styling already in place. If you have ReSharper there is a dotsettings file included and things should automatically be formatted for you.

## Credits

### Contributors

This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].

<a href="https://github.com/JoshClose/CsvHelper/graphs/contributors"><img src="https://opencollective.com/csvhelper/contributors.svg?width=890&button=false" /></a>

### Sponsors

You can do a one time or recurring donations through [GitHub Sponsors](https://github.com/sponsors/JoshClose)

A huge thanks to the [.NET on AWS Open Source Software Fund](https://github.com/aws/dotnet-foss) for sponsoring CsvHelper!

<a href="https://github.com/aws/dotnet-foss"><img src="https://raw.githubusercontent.com/JoshClose/CsvHelper/master/logo/aws.png" /></a>

Thanks to [Microsoft](https://github.com/microsoft) for being a sponsor!

<a href="https://github.com/microsoft"><img src="https://raw.githubusercontent.com/JoshClose/CsvHelper/master/logo/microsoft.png" /></a>
