public void TestHeaderAttributes() { var csvHeaders1 = new CsvHeaders("A", "e"); var csvHeaders2 = new CsvHeaders <SampleObject>(x => new { x.A, x.E }); Assert.True(csvHeaders1.SequenceEqual(csvHeaders2)); }
public void TestExpression() { var csvHeaders1 = new CsvHeaders("A", "B", "C", "D"); var csvHeaders2 = new CsvHeaders <SampleObject>(x => new { x.A, x.B, x.C, x.D }); Assert.True(csvHeaders1.SequenceEqual(csvHeaders2)); }
/// <summary> /// Parse a CSV file and convert it into a List of strongly typed Objects. /// Never returns null. /// If the first line is not headers, and you don't supply any columnProps, then the names of the columns are assumed. /// </summary> /// <param name="filePath">CSV file path</param> /// <param name="headers">Read the first line as the column headers?</param> /// <param name="columnProps">Provide the properties per column, if known</param> /// <param name="delimiter">Uses the given delimiter</param> /// <returns></returns> public static CsvResults <T> LoadCSV <T>(this string filePath, CsvHeaders headers, List <string> columnProps = null, char delimiter = ',') { var text = filePath.LoadTextFile(); if (text == null) { return(new CsvResults <T> { Success = false }); } return(text.DecodeCSV <T>(headers, columnProps, delimiter)); }
/// <summary> /// Parse a CSV file and convert it into a List of strongly typed Objects. Never returns null. /// If the first line is not headers, and you don't supply any columnProps, /// then the names of the columns are assumed. /// </summary> /// <param name="csv">CSV-formatted string</param> /// <param name="headers">Read the first line as the column headers?</param> /// <param name="columnProps">Provide the properties per column, if known</param> /// <param name="delimiter">Uses the given delimiter</param> public static CsvResults <T> DecodeCSV <T>(this string csv, CsvHeaders headers, List <string> columnProps = null, char delimiter = ',') { if (!csv.Exists()) { return(new CsvResults <T>()); } csv = csv.Trim(); return(new CsvDecoder <T>() { Csv = csv, Lines = csv.Lines(), Header = headers, ColumnProps = columnProps, Delimiter = delimiter }.DecodeString()); }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableAccess"/> class. /// </summary> /// <param name="csvHeaders">List of csv headers</param> /// <param name="csvConverterResolver">Your own implementation of a value converter resolver</param> public CsvTableAccess(CsvHeaders csvHeaders, ICsvConverterResolver csvConverterResolver) : base(csvConverterResolver) { Headers = csvHeaders; }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableAccess"/> class. /// </summary> /// <param name="csvConverterResolver">Your own implementation of a value converter resolver</param> public CsvTableAccess(ICsvConverterResolver csvConverterResolver) : base(csvConverterResolver) { Headers = new CsvHeaders(); }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableAccess"/> class. /// </summary> /// <param name="csvHeaders">List of csv headers</param> public CsvTableAccess(CsvHeaders csvHeaders) : base() { Headers = csvHeaders; }
/// <summary> /// Initializes a new instance of the <see cref="CsvTableAccess"/> class. /// </summary> public CsvTableAccess() : base() { Headers = new CsvHeaders(); }