Manually Add Header in CsvHelper.CsvWriter
Update:
DataTable
functionality is built in now. https://joshclose.github.io/CsvHelper/examples/data-table
Original:
This is actually in the documentation under Writing to a CSV using a DataTable
.
I'll put the code example here too.
using( var dt = new DataTable() )
{
dt.Load( dataReader );
foreach( DataColumn column in dt.Columns )
{
csv.WriteField( column.ColumnName );
}
csv.NextRecord();
foreach( DataRow row in dt.Rows )
{
for( var i = 0; i < dt.Columns.Count; i++ )
{
csv.WriteField( row[i] );
}
csv.NextRecord();
}
}
Headers aren't anything special or different in a CSV file.
The easiest way is to use
writer.WriteHeader<YourClass>();
More complete example:
using (StreamWriter sw = new StreamWriter(@"C:\output.csv"))
{
using (CsvWriter writer = new CsvWriter(sw))
{
writer.WriteHeader<YourClass>();
writer.NextRecord();
writer.WriteRecord(yourRecordVariable);
}
}
As was posted here on Google groups by the author Josh Close.