Simple.CsvReader
6.0.1
See the version list below for details.
dotnet add package Simple.CsvReader --version 6.0.1
NuGet\Install-Package Simple.CsvReader -Version 6.0.1
<PackageReference Include="Simple.CsvReader" Version="6.0.1" />
paket add Simple.CsvReader --version 6.0.1
#r "nuget: Simple.CsvReader, 6.0.1"
// Install Simple.CsvReader as a Cake Addin #addin nuget:?package=Simple.CsvReader&version=6.0.1 // Install Simple.CsvReader as a Cake Tool #tool nuget:?package=Simple.CsvReader&version=6.0.1
Simple.CsvReader
Simple.CsvReader is a lightweight and easy-to-use C# library for reading and parsing CSV (Comma-Separated Values) files. This library is designed to provide a straightforward way to handle CSV data in your C# projects, offering flexibility and simplicity.
Features
Easy Integration: Because the intended use is for 1-off assignments, all you really need to do is specify the fields to retrieve from a file and the types, create a CsvReader object, and read data.
Configurable: Customize the CSV parsing behavior with various options, Almost exclusively specifying delimiters.
Error Handling: None included!
Getting Started
Installation
You can install Simple.CsvReader via NuGet Package Manager Console:
Install-Package Simple.CsvReader
Or use the .NET CLI:
dotnet add package Simple.CsvReader
Usage
To use the Simple.CsvReader, we'll start with the assumption that your have a csv file where the first line contains column names, and the proceeding lines are rows with values. As an example:
FirstName, MiddleName, LastName
"John","Michael","Smith"
"Emma","Grace","Johnson"
"Alexander","James","Davis"
To use Simple.CsvReader, you'll first need to implement the RowMapper class and override MapRow. Be sure to use the "GetField" method, and pass in the value of the column heading that you want to parse:
public record Person
{
public string FirstName { get; init; }
public string LastName { get; init; }
}
public class PersonMapper : RowMapper<Person>
{
public override Person? MapRow(string[] fields)
{
return new Person()
{
FirstName = GetField(fields, "FirstName"),
LastName = GetField(fields, "LastName"),
};
}
}
Create your CsvReader, passing in the full path of the file you want to read, the column header values, and the mapper you want to use, then call ReadAll to get your data!
CsvReader<Person> reader = new (
fullPath: "A:\\Example\\filename.csv",
columnsToRead: new string[] { "FirstName", "LastName" },
mapper: new PersonMapper()
);
IEnumerable<Person> fileData = reader.ReadAll();
foreach (var person in fileData) {
Console.WriteLine($"{person.FirstName} {person.LastName}");
}
// Outputs:
// "John Smith"
// "Emma Johnson"
// "Alexander Davis"
For more detailed usage and configuration options, check out the source code. There's not much 😃
Contributions
Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to create an issue or submit a pull request.
License
This project is licensed under the GNU General Public License - see the (LICENSE)LICENSE file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.