-
Notifications
You must be signed in to change notification settings - Fork 0
e7ffa9d9 0ef2 02e9 74eb 95b423660295
This static class allows reading a value list of TInstance types either from a file or simply from a stream (which actually can also be a file).
System.Object
Plexdata.CsvParser.Processors.CsvImporter(TInstance)
Namespace: Plexdata.CsvParser.Processors
Assembly: Plexdata.CsvParser.NET (in Plexdata.CsvParser.NET.dll) Version: 1.1.3+d5bef99aa35461ce4bafadf0bf2c2aeca18044ea
C#
public static class CsvImporter<TInstance>
where TInstance : class
- TInstance
- The class type that fully describes the structure of the CSV input to be read.
Name | Description | |
---|---|---|
![]() ![]() |
Construct | This method constructs an instance of type TInstance by calling its standard constructors. |
![]() ![]() |
GetHeaderName | This method returns the expected header name of a single column. |
![]() ![]() |
IsHeaderLine | This method tries to determine whether given list of cells contain all and only header names. |
![]() ![]() |
IsHeaderName | The method evaluates whether give name equals to the header name set in the descriptor. |
![]() ![]() |
Load(Stream) | This method tries to load all values from given stream. |
![]() ![]() |
Load(String) | This method tries to load all values from given file. |
![]() ![]() |
Load(Stream, CsvSettings) | This method tries to load all values from given stream using given settings. |
![]() ![]() |
Load(String, CsvSettings) | This method tries to load all values from given file using given settings. |
![]() ![]() |
ProcessLine | This method tries to process given line according to given set of parameters. |
![]() ![]() |
ValidateColumns | This method validates the number of columns of each line. |
![]() ![]() |
ValidateHeader | This method tries to validate given headers by applying exact validation rules. |
CSV actually means Comma Separated Values. Sometimes it is also called as Character Separated Values. But no matter which name is used, CSV always represents a text file mainly used for data exchange between different system.
It would be possible (using a proper configuration) to read a CSV input according to the rules of RFC 4180. For more information about RFC 4180 please visit the web-site under https://www.ietf.org/rfc/rfc4180.txt
This section wants to show a simple but hopefully useful example of how to use the CSV Parser for data imports.
using Plexdata.CsvParser.Attributes;
using Plexdata.CsvParser.Processors;
using System;
using System.Collections.Generic;
using System.Globalization;
namespace MyCsvImporter
{
class Program
{
[CsvDocument]
class CsvCustomer
{
[CsvIgnore]
public Int32 Id { get; set; }
[CsvColumn(Offset = 2, Header = "Identifier")]
public Int32 ExternalId { get; set; }
[CsvColumn(Offset = 1, Header = "Forename")]
public String FirstName { get; set; }
[CsvColumn(Offset = 0, Header = "Surname")]
public String LastName { get; set; }
[CsvColumn(Offset = 5, Header = "Active")]
public Boolean IsActive { get; set; }
[CsvColumn(Offset = 3, Header = "Date")]
public DateTime? EntryDate { get; set; }
[CsvColumn(Offset = 4, Header = "Sales")]
public Decimal SalesAverage { get; set; }
[CsvColumn(Offset = 6, Header = "Notes")]
public String Description { get; set; }
}
static void Main(String[] args)
{
try
{
String filename = @"C:\folder\file.csv";
CsvSettings settings = new CsvSettings
{
Culture = CultureInfo.GetCultureInfo("en-US"),
Mappings = new CsvMappings
{
TrueValues = new List<String> { "yeah" },
FalseValues = new List<String> { "nope" },
},
};
// Source file could contain this content:
// Surname, Forename, Identifier, Date, Sales, Active, Notes
// "Marley", "Bob", 1001, 2007-05-03, "1,234.56", nope, "Have a short note here."
// "Monroe", "Marilyn", 1002, 2008-06-05, "1,234.56", nope, ""
// "Snipes", "Wesley", 1003, 2009-07-06, "1,234.56", yeah, "Have a short note here."
// "Hurley", "Elizabeth", 1004, 2005-08-08, "1,234.56", yeah, "Have a short note here."
IEnumerable<CsvCustomer> result = CsvImporter<CsvCustomer>.Load(filename, settings);
foreach (CsvCustomer current in result)
{
Console.WriteLine(current.ToString());
}
Console.ReadKey();
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}
}
}
Plexdata.CsvParser.NET
-
Plexdata.CsvParser.NET
- Plexdata.CsvParser.Attributes Namespace
- Plexdata.CsvParser.Constants Namespace
- Plexdata.CsvParser.Definitions Namespace
-
Plexdata.CsvParser.Extensions Namespace
- CsvContainerExtension Class
- CsvContainerExtension.ContainerSortComparer Class
-
Plexdata.CsvParser.Internals Namespace
- ItemDescriptor Class
- ProcessHelper Class
-
TypeConverter Class
-
TypeConverter Methods
- TypeConverter.AsBoolean Method
- TypeConverter.AsCharacter Method
- TypeConverter.AsDateTime Method
- TypeConverter.AsDecimal Method
- TypeConverter.AsDouble Method
- TypeConverter.AsSingle Method
- TypeConverter.AsSInt16 Method
- TypeConverter.AsSInt32 Method
- TypeConverter.AsSInt64 Method
- TypeConverter.AsSInt8 Method
- TypeConverter.AsString Method
- TypeConverter.AsUInt16 Method
- TypeConverter.AsUInt32 Method
- TypeConverter.AsUInt64 Method
- TypeConverter.AsUInt8 Method
- TypeConverter.GetFalseMapping Method
- TypeConverter.GetFalseMappings Method
- TypeConverter.GetNullMapping Method
- TypeConverter.GetNullMappings Method
- TypeConverter.GetTrueMapping Method
- TypeConverter.GetTrueMappings Method
- TypeConverter.IntoObject Method
- TypeConverter.IntoString Method
- TypeConverter.IsFalseString Method
- TypeConverter.IsNullable Method
- TypeConverter.IsNullString Method
- TypeConverter.IsTrueString Method
- TypeConverter.ToString Method
-
TypeConverter Methods
- TypeDescriptor Class
- TypeProcessor Class
-
Plexdata.CsvParser.Processors Namespace
-
CsvContainer Class
- CsvContainer Constructor
- CsvContainer Properties
-
CsvContainer Methods
- CsvContainer.ChangeColumn Method
- CsvContainer.Contains Method
- CsvContainer.CreateDefaultSettings Method
- CsvContainer.CreateInitialContent Method
- CsvContainer.GetColumnIndex Method
- CsvContainer.GetObject Method
- CsvContainer.GetTransformedContent Method
- CsvContainer.GetValue Method
- CsvContainer.IsValid Method
- CsvContainer.SetValue Method
- CsvContainer.Transform Method
- CsvContainer.TryGetValue Method
- CsvContainer.TrySetValue Method
-
CsvExporter(TInstance) Class
-
CsvExporter(TInstance) Methods
- CsvExporter(TInstance).BuildLine Method
-
CsvExporter(TInstance).Save Method
- CsvExporter(TInstance).Save Method (IEnumerable(TInstance), Stream)
- CsvExporter(TInstance).Save Method (IEnumerable(TInstance), String)
- CsvExporter(TInstance).Save Method (IEnumerable(TInstance), Stream, CsvSettings)
- CsvExporter(TInstance).Save Method (IEnumerable(TInstance), String, CsvSettings)
- CsvExporter(TInstance).Save Method (IEnumerable(TInstance), String, CsvSettings, Boolean)
- CsvExporter(TInstance).WriteHead Method
- CsvExporter(TInstance).WriteLine Method
-
CsvExporter(TInstance) Methods
-
CsvImporter(TInstance) Class
-
CsvImporter(TInstance) Methods
- CsvImporter(TInstance).Construct Method
- CsvImporter(TInstance).GetHeaderName Method
- CsvImporter(TInstance).IsHeaderLine Method
- CsvImporter(TInstance).IsHeaderName Method
- CsvImporter(TInstance).Load Method
- CsvImporter(TInstance).ProcessLine Method
- CsvImporter(TInstance).ValidateColumns Method
- CsvImporter(TInstance).ValidateHeader Method
-
CsvImporter(TInstance) Methods
- CsvMappings Class
- CsvReader Class
- CsvSettings Class
-
CsvWriter Class
-
CsvWriter Methods
- CsvWriter.GetContentOrThrow Method
-
CsvWriter.Write Method
- CsvWriter.Write Method (IEnumerable(IEnumerable(Object)), Stream)
- CsvWriter.Write Method (IEnumerable(IEnumerable(Object)), String)
- CsvWriter.Write Method (CsvContainer, Stream)
- CsvWriter.Write Method (CsvContainer, String)
- CsvWriter.Write Method (IEnumerable(IEnumerable(Object)), Stream, CsvSettings)
- CsvWriter.Write Method (IEnumerable(IEnumerable(Object)), String, CsvSettings)
- CsvWriter.Write Method (CsvContainer, Stream, CsvSettings)
- CsvWriter.Write Method (CsvContainer, String, CsvSettings)
- CsvWriter.Write Method (IEnumerable(IEnumerable(Object)), String, CsvSettings, Boolean)
- CsvWriter.Write Method (CsvContainer, String, CsvSettings, Boolean)
- CsvWriter.WriteLine Method
-
CsvWriter Methods
-
CsvContainer Class