API Reference
CsvDocument
Represents a CSV document with a fluent, document-centric API. Thread-safe for independent read enumeration; not thread-safe for concurrent mutations on the same instance.
Inheritance
- Object
- CsvDocument
Constructors
public CsvDocument() #Initializes a new in-memory CSV document with default settings.
Methods
public CsvDocument AddColumn(String name, Func<CsvRow, Object> valueFactory) #CsvDocumentAdds a computed column to the document.
Parameters
- name System.String
- valueFactory System.Func{OfficeIMO.CSV.CsvRow,System.Object}
public IEnumerable<CsvRow> AsEnumerable() #IEnumerable<CsvRow>Returns rows as an enumerable sequence. In streaming mode this is lazy.
public CsvDocument EnsureSchema(Action<CsvSchemaBuilder> buildAction) #CsvDocumentAttaches a schema to the document.
Parameters
- buildAction System.Action{OfficeIMO.CSV.CsvSchemaBuilder}
public CsvDocument Filter(Func<CsvRow, Boolean> predicate) #CsvDocumentFilters rows using the provided predicate.
Parameters
- predicate System.Func{OfficeIMO.CSV.CsvRow,System.Boolean}
public static CsvDocument FromObjects(IEnumerable<Object> items, Char delimiter = ',', CultureInfo culture = null, Encoding encoding = null) #CsvDocumentCreates a CSV document from a sequence of objects by projecting their properties or dictionary keys into columns.
Parameters
- items System.Collections.Generic.IEnumerable{System.Object}
- Sequence of objects to convert into CSV rows.
- delimiter System.Char = ','
- Delimiter to use for the CSV document.
- culture System.Globalization.CultureInfo = null
- Optional culture for value formatting.
- encoding System.Text.Encoding = null
- Optional encoding for file operations.
Returns
A populated CsvDocument.
public static CsvDocument Load(String path, CsvLoadOptions options = null) #CsvDocumentLoads a CSV document from disk.
Parameters
- path System.String
- options OfficeIMO.CSV.CsvLoadOptions = null
public static CsvDocument Load(Stream stream, CsvLoadOptions options = null, Boolean leaveOpen = true) #CsvDocumentLoads a CSV document from a stream.
Parameters
- stream System.IO.Stream
- Source stream.
- options OfficeIMO.CSV.CsvLoadOptions = null
- Load options.
- leaveOpen System.Boolean = true
- Whether to leave the source stream open after loading.
public CsvDocument Materialize() #CsvDocumentForces a streaming document to materialize into memory, enabling transformations.
public static CsvDocument Parse(String text, CsvLoadOptions options = null) #CsvDocumentParses a CSV document from text.
Parameters
- text System.String
- options OfficeIMO.CSV.CsvLoadOptions = null
public CsvDocument RemoveColumn(String name) #CsvDocumentRemoves a column by name.
Parameters
- name System.String
public CsvDocument Save(String path, CsvSaveOptions options = null) #CsvDocumentSaves the document to the specified path.
Parameters
- path System.String
- options OfficeIMO.CSV.CsvSaveOptions = null
public CsvDocument SortBy<TKey>(Func<CsvRow, TKey> keySelector, Boolean descending = false, IComparer<TKey> comparer = null) #CsvDocumentSorts rows by a column name.
Type Parameters
- TKey
Parameters
- columnName System.String
- descending System.Boolean = false
- comparer System.Collections.Generic.IComparer{System.Object} = null
SortBy``1(System.Func{OfficeIMO.CSV.CsvRow,``0} keySelector, System.Boolean descending, System.Collections.Generic.IComparer{``0} comparer) #Sorts rows using a typed key selector.
Parameters
- keySelector System.Func{OfficeIMO.CSV.CsvRow,``0}
- descending System.Boolean
- comparer System.Collections.Generic.IComparer{``0}
public String ToString(CsvSaveOptions options) #StringSerializes the document to a string using the provided save options.
Parameters
- options OfficeIMO.CSV.CsvSaveOptions
public CsvDocument Transform(Func<CsvDocument, CsvDocument> transformer) #CsvDocumentExecutes a custom transformation.
Parameters
- transformer System.Func{OfficeIMO.CSV.CsvDocument,OfficeIMO.CSV.CsvDocument}
public CsvDocument Validate(out IReadOnlyList<CsvValidationError> errors) #CsvDocumentValidates the document against the configured schema.
Parameters
- errors System.Collections.Generic.IReadOnlyList{OfficeIMO.CSV.CsvValidationError}@
public CsvDocument ValidateOrThrow() #CsvDocumentValidates and throws when validation fails.
public CsvDocument WithCulture(CultureInfo culture) #CsvDocumentSets the culture for type conversions.
Parameters
- culture System.Globalization.CultureInfo
public CsvDocument WithDelimiter(Char delimiter) #CsvDocumentSets the delimiter used for reading and writing.
Parameters
- delimiter System.Char
public CsvDocument WithEncoding(Encoding encoding) #CsvDocumentSets the encoding used for file operations.
Parameters
- encoding System.Text.Encoding
public CsvDocument WithHeader(params String[] headers) #CsvDocumentReplaces the header row.
Parameters
- headers System.String[]
Inherited Methods
Properties
public IReadOnlyList<String> Header { get; } #Gets the document header columns.
public Char Delimiter { get; } #Gets the delimiter used by the document.
public CultureInfo Culture { get; } #Gets the culture used for type conversions.
public Encoding Encoding { get; } #Gets the encoding used when reading or writing files.
public CsvLoadMode Mode { get; } #Gets the load mode of the document.
Extension Methods
public static IEnumerable<T> Map<T>(CsvDocument document, Action<CsvMapper<T>> configure) #IEnumerable<T>Type Parameters
- T
Parameters
- document CsvDocument
- configure Action<CsvMapper<T>>