OfficeIMO

API Reference

Class

CsvDocument

Namespace OfficeIMO.CSV
Assembly OfficeIMO.CSV
Modifiers sealed

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) #
Returns: CsvDocument

Adds a computed column to the document.

Parameters

name System.String requiredposition: 0
valueFactory System.Func{OfficeIMO.CSV.CsvRow,System.Object} requiredposition: 1
AddRow 2 overloads
public CsvDocument AddRow(CsvRow row) #
Returns: CsvDocument

Adds a new row to the document.

Parameters

values System.Object[] requiredposition: 0
AddRow(OfficeIMO.CSV.CsvRow row) #

Adds an existing row instance to the document.

Parameters

row OfficeIMO.CSV.CsvRow required
public IEnumerable<CsvRow> AsEnumerable() #
Returns: IEnumerable<CsvRow>

Returns rows as an enumerable sequence. In streaming mode this is lazy.

public CsvDocument EnsureSchema(Action<CsvSchemaBuilder> buildAction) #
Returns: CsvDocument

Attaches a schema to the document.

Parameters

buildAction System.Action{OfficeIMO.CSV.CsvSchemaBuilder} requiredposition: 0
public CsvDocument Filter(Func<CsvRow, Boolean> predicate) #
Returns: CsvDocument

Filters rows using the provided predicate.

Parameters

predicate System.Func{OfficeIMO.CSV.CsvRow,System.Boolean} requiredposition: 0
public static CsvDocument FromObjects(IEnumerable<Object> items, Char delimiter = ',', CultureInfo culture = null, Encoding encoding = null) #
Returns: CsvDocument

Creates 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} requiredposition: 0
Sequence of objects to convert into CSV rows.
delimiter System.Char = ',' optionalposition: 1
Delimiter to use for the CSV document.
culture System.Globalization.CultureInfo = null optionalposition: 2
Optional culture for value formatting.
encoding System.Text.Encoding = null optionalposition: 3
Optional encoding for file operations.

Returns

A populated CsvDocument.

Load 2 overloads
public static CsvDocument Load(String path, CsvLoadOptions options = null) #
Returns: CsvDocument

Loads a CSV document from disk.

Parameters

path System.String requiredposition: 0
options OfficeIMO.CSV.CsvLoadOptions = null optionalposition: 1
public static CsvDocument Load(Stream stream, CsvLoadOptions options = null, Boolean leaveOpen = true) #
Returns: CsvDocument

Loads a CSV document from a stream.

Parameters

stream System.IO.Stream requiredposition: 0
Source stream.
options OfficeIMO.CSV.CsvLoadOptions = null optionalposition: 1
Load options.
leaveOpen System.Boolean = true optionalposition: 2
Whether to leave the source stream open after loading.
public CsvDocument Materialize() #
Returns: CsvDocument

Forces a streaming document to materialize into memory, enabling transformations.

public static CsvDocument Parse(String text, CsvLoadOptions options = null) #
Returns: CsvDocument

Parses a CSV document from text.

Parameters

text System.String requiredposition: 0
options OfficeIMO.CSV.CsvLoadOptions = null optionalposition: 1
public CsvDocument RemoveColumn(String name) #
Returns: CsvDocument

Removes a column by name.

Parameters

name System.String requiredposition: 0
public CsvDocument Save(String path, CsvSaveOptions options = null) #
Returns: CsvDocument

Saves the document to the specified path.

Parameters

path System.String requiredposition: 0
options OfficeIMO.CSV.CsvSaveOptions = null optionalposition: 1
public CsvDocument SortBy<TKey>(Func<CsvRow, TKey> keySelector, Boolean descending = false, IComparer<TKey> comparer = null) #
Returns: CsvDocument

Sorts rows by a column name.

Type Parameters

TKey

Parameters

columnName System.String requiredposition: 0
descending System.Boolean = false optionalposition: 1
comparer System.Collections.Generic.IComparer{System.Object} = null optionalposition: 2
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} required
descending System.Boolean required
comparer System.Collections.Generic.IComparer{``0} required
ToString 2 overloads
public String ToString(CsvSaveOptions options) #
Returns: String

Serializes the document to a string using the provided save options.

Parameters

options OfficeIMO.CSV.CsvSaveOptions requiredposition: 0
public override String ToString() #
Returns: String
public CsvDocument Transform(Func<CsvDocument, CsvDocument> transformer) #
Returns: CsvDocument

Executes a custom transformation.

Parameters

transformer System.Func{OfficeIMO.CSV.CsvDocument,OfficeIMO.CSV.CsvDocument} requiredposition: 0
public CsvDocument Validate(out IReadOnlyList<CsvValidationError> errors) #
Returns: CsvDocument

Validates the document against the configured schema.

Parameters

errors System.Collections.Generic.IReadOnlyList{OfficeIMO.CSV.CsvValidationError}@ requiredposition: 0
public CsvDocument ValidateOrThrow() #
Returns: CsvDocument

Validates and throws when validation fails.

public CsvDocument WithCulture(CultureInfo culture) #
Returns: CsvDocument

Sets the culture for type conversions.

Parameters

culture System.Globalization.CultureInfo requiredposition: 0
public CsvDocument WithDelimiter(Char delimiter) #
Returns: CsvDocument

Sets the delimiter used for reading and writing.

Parameters

delimiter System.Char requiredposition: 0
public CsvDocument WithEncoding(Encoding encoding) #
Returns: CsvDocument

Sets the encoding used for file operations.

Parameters

encoding System.Text.Encoding requiredposition: 0
public CsvDocument WithHeader(params String[] headers) #
Returns: CsvDocument

Replaces the header row.

Parameters

headers System.String[] requiredposition: 0

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) #
Returns: IEnumerable<T>

Type Parameters

T

Parameters

document CsvDocument requiredposition: 0
configure Action<CsvMapper<T>> requiredposition: 1