# Generate classes from CSV

Generate C# model or stub classes from CSV file. You can select the property naming convention (Pascal, Camel or Original) and whether or not to generate a class map for the CsvHelper library. The generator is smart enough to detect data types for the output properties of the C# class. It can even work with just the header row of a CSV file.

Settings

##### Output: Generated Classes

Background Information

CSV is an old & very popular format for storing tabular data. It has been used in the desktop as well as mainframe. It is a simple & compact format that works really well for tabular data and so is still in use today.

##### Settings Explained
• ###### 1. First Row Is Header

If this option is selected the first row of your comma separated file is assumed to be the header. The names of the properties are generated using the field values in the first row. If the option is not selected the property names are generated automatically using a numeric pattern: column 1, column 2, column 3, etc. In the latter case the first row is interpreted as raw data.

###### First Row is Header On

public class Model
{
public string Name { get; set; }
public string Department { get; set; }
public string Manager { get; set; }
public int Salary { get; set; }
}
###### First Row is Header Off

public class Model
{
public string Column1 { get; set; }
public string Column2 { get; set; }
public string Column3 { get; set; }
public string Column4 { get; set; }
}
• ###### 2. Delimiter

The delimiter in the input CSV is specified here. In most cases the default setting Auto Detect works fine. But, in really small CSV data with delimiters also occurring as literals, the auto detection logic might not choose the correct delimiter. In such a scenario, the delimiter can be manually specified. Following are the choices for delimiters:-

• Comma
• Tab
• Space
• Pipe
• Semi-Colon

• ###### 3. Class Name

The name of the genreated Class.

• ###### 4. Language

The language for which you want the classes to be generated. Currently C# is the only option available. But, we intend to extend it to Java in the near future.

• ###### 5. Generate Class Map

If selected, a CsvHelper compliant class map is generated.

###### Generate Class Map On

public class Person
{
public string FullName { get; set; }
public int age { get; set; }
}

public class PersonClassMap : ClassMap
{
public PersonClassMap()
{
Map(m => m.FullName).Name("Full Name");
Map(m => m.age).Name("age");
}
}
###### Generate Class Map Off

public class Person
{
public string FullName { get; set; }
public int age { get; set; }
}
• ###### 6. Property Naming Strategy

Choose the naming strategy of the generated properties. The available options are:-

###### Cleanse Only

public class Person
{
public string FullName { get; set; }

public int age { get; set; }
}
###### Pascal Case

public class Person
{
public string FullName { get; set; }

public int Age { get; set; }

###### Camel Case

public class Person
{
public string fullName { get; set; }

public int age { get; set; }
}

###### History
Jul 8, 2018
Ability to generate class from just CSV Header
Mar 7, 2018
Support for semi-colon delimiters
Delimiter & First Row is Header Parameters
Dec 9, 2017
Tool Launched