Generate classes from CSV

Jan 22, 2019

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.



Input: Paste CSV content below

Settings

Output: Generated Classes


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; }
    }
Comments 0

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