Class CsvWriter
A CSV writer useful for exporting a set of objects.
Namespace: Swan.Formatters
Syntax
public class CsvWriter : IDisposable
Examples
The following code describes how to save a list of objects into a CSV file.
using System.Collections.Generic;
using Swan.Formatters;
class Example
{
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
static void Main()
{
// create a list of people
var people = new List<Person>
{
new Person { Name = "Artyom", Age = 20 },
new Person { Name = "Aloy", Age = 18 }
}
// write items inside file.csv
CsvWriter.SaveRecords(people, "C:\\Users\\user\\Documents\\file.csv");
// output
// | Name | Age |
// | Artyom | 20 |
// | Aloy | 18 |
}
}
Constructors
CsvWriter(Stream)
Initializes a new instance of the CsvWriter class. It uses the Windows 1252 encoding and automatically closes the stream upon disposing this writer.
Declaration
public CsvWriter(Stream outputStream)
Parameters
Type | Name | Description |
---|---|---|
Stream | outputStream | The output stream. |
CsvWriter(Stream, Encoding)
Initializes a new instance of the CsvWriter class. It automatically closes the stream when disposing this writer.
Declaration
public CsvWriter(Stream outputStream, Encoding encoding)
Parameters
Type | Name | Description |
---|---|---|
Stream | outputStream | The output stream. |
Encoding | encoding | The encoding. |
CsvWriter(Stream, Boolean, Encoding)
Initializes a new instance of the CsvWriter class.
Declaration
public CsvWriter(Stream outputStream, bool leaveOpen, Encoding encoding)
Parameters
Type | Name | Description |
---|---|---|
Stream | outputStream | The output stream. |
Boolean | leaveOpen | if set to |
Encoding | encoding | The encoding. |
CsvWriter(String)
Initializes a new instance of the CsvWriter class. It opens the file given file, automatically closes the stream upon disposing of this writer, and uses the Windows 1252 encoding.
Declaration
public CsvWriter(string filename)
Parameters
Type | Name | Description |
---|---|---|
String | filename | The filename. |
CsvWriter(String, Encoding)
Initializes a new instance of the CsvWriter class. It opens the file given file, automatically closes the stream upon disposing of this writer, and uses the given text encoding for output.
Declaration
public CsvWriter(string filename, Encoding encoding)
Parameters
Type | Name | Description |
---|---|---|
String | filename | The filename. |
Encoding | encoding | The encoding. |
Properties
Count
Gets number of lines that have been written, including the headings line.
Declaration
public ulong Count { get; }
Property Value
Type | Description |
---|---|
UInt64 | The count. |
EscapeCharacter
Gets or sets the escape character to use to escape field values.
Declaration
public char EscapeCharacter { get; set; }
Property Value
Type | Description |
---|---|
Char | The escape character. |
IgnorePropertyNames
Defines a list of properties to ignore when outputting CSV lines.
Declaration
public List<string> IgnorePropertyNames { get; }
Property Value
Type | Description |
---|---|
List<String> | The ignore property names. |
NewLineSequence
Gets or sets the new line character sequence to use when writing a line.
Declaration
public string NewLineSequence { get; set; }
Property Value
Type | Description |
---|---|
String | The new line sequence. |
SeparatorCharacter
Gets or sets the field separator character.
Declaration
public char SeparatorCharacter { get; set; }
Property Value
Type | Description |
---|---|
Char | The separator character. |
Methods
Dispose()
Declaration
public void Dispose()
Dispose(Boolean)
Releases unmanaged and - optionally - managed resources.
Declaration
protected virtual void Dispose(bool disposeAlsoManaged)
Parameters
Type | Name | Description |
---|---|---|
Boolean | disposeAlsoManaged |
|
SaveRecords<T>(IEnumerable<T>, Stream, Boolean)
Saves the items to a stream. It uses the Windows 1252 text encoding for output.
Declaration
public static int SaveRecords<T>(IEnumerable<T> items, Stream stream, bool truncateData = false)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<T> | items | The items. |
Stream | stream | The stream. |
Boolean | truncateData |
|
Returns
Type | Description |
---|---|
Int32 | Number of item saved. |
Type Parameters
Name | Description |
---|---|
T | The type of enumeration. |
SaveRecords<T>(IEnumerable<T>, String)
Saves the items to a CSV file. If the file exits, it overwrites it. If it does not, it creates it. It uses the Windows 1252 text encoding for output.
Declaration
public static int SaveRecords<T>(IEnumerable<T> items, string filePath)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<T> | items | The items. |
String | filePath | The file path. |
Returns
Type | Description |
---|---|
Int32 | Number of item saved. |
Type Parameters
Name | Description |
---|---|
T | The type of enumeration. |
WriteHeadings(IDictionary)
Writes the headings.
Declaration
public void WriteHeadings(IDictionary dictionary)
Parameters
Type | Name | Description |
---|---|---|
IDictionary | dictionary | The dictionary to extract headings. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | dictionary. |
WriteHeadings(Object)
Writes the headings.
Declaration
public void WriteHeadings(object obj)
Parameters
Type | Name | Description |
---|---|---|
Object | obj | The object to extract headings. |
WriteHeadings(Type)
Writes the headings.
Declaration
public void WriteHeadings(Type type)
Parameters
Type | Name | Description |
---|---|---|
Type | type | The type of object to extract headings. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | type. |
WriteHeadings<T>()
Writes the headings.
Declaration
public void WriteHeadings<T>()
Type Parameters
Name | Description |
---|---|
T | The type of object to extract headings. |
WriteLine(IEnumerable<Object>)
Writes a line of CSV text. Items are converted to strings. If items are found to be null, empty strings are written out. If items are not string, the ToStringInvariant() method is called on them.
Declaration
public void WriteLine(IEnumerable<object> items)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<Object> | items | The items. |
WriteLine(IEnumerable<String>)
Writes a line of CSV text. If items are found to be null, empty strings are written out.
Declaration
public void WriteLine(IEnumerable<string> items)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<String> | items | The items. |
WriteLine(Object[])
Writes a line of CSV text. Items are converted to strings. If items are found to be null, empty strings are written out. If items are not string, the ToStringInvariant() method is called on them.
Declaration
public void WriteLine(params object[] items)
Parameters
Type | Name | Description |
---|---|---|
Object[] | items | The items. |
WriteLine(String[])
Writes a line of CSV text. If items are found to be null, empty strings are written out.
Declaration
public void WriteLine(params string[] items)
Parameters
Type | Name | Description |
---|---|---|
String[] | items | The items. |
WriteObject(Object)
Writes a row of CSV text. It handles the special cases where the object is a dynamic object or and array. It also handles non-collection objects fine. If you do not like the way the output is handled, you can simply write an extension method of this class and use the WriteLine method instead.
Declaration
public void WriteObject(object item)
Parameters
Type | Name | Description |
---|---|---|
Object | item | The item. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | item. |
WriteObject<T>(T)
Writes a row of CSV text. It handles the special cases where the object is a dynamic object or and array. It also handles non-collection objects fine. If you do not like the way the output is handled, you can simply write an extension method of this class and use the WriteLine method instead.
Declaration
public void WriteObject<T>(T item)
Parameters
Type | Name | Description |
---|---|---|
T | item | The item. |
Type Parameters
Name | Description |
---|---|
T | The type of object to write. |
WriteObjects<T>(IEnumerable<T>)
Writes a set of items, one per line and atomically by repeatedly calling the WriteObject method. For more info check out the description of the WriteObject method.
Declaration
public void WriteObjects<T>(IEnumerable<T> items)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<T> | items | The items. |
Type Parameters
Name | Description |
---|---|
T | The type of object to write. |