using System; using System.Data; using System.IO; namespace Quadarax.Foundation.Common.Data { public static class CsvHelper { /// /// Read CSV file and creates with filled content. /// /// This method expects first header row. /// /// /// (*.csv) full file name. /// Delimiter character /// New created DataTable with content. public static DataTable CsvToDataTable(string csvFile, string delimiter) { var dt = new DataTable(); using (var sr = new StreamReader(csvFile)) { var headers = sr.ReadLine().Split(new string[] { delimiter }, StringSplitOptions.RemoveEmptyEntries); foreach (var header in headers) { dt.Columns.Add(header); } while (!sr.EndOfStream) { var rows = sr.ReadLine().Split(new[] { delimiter }, StringSplitOptions.None); var dr = dt.NewRow(); for (var i = 0; i < headers.Length; i++) { dr[i] = rows[i]; } dt.Rows.Add(dr); } } return dt; } } }