/// <summary> /// Serialize a single row for the CSV file /// </summary> /// <param name="obj"></param> /// <returns></returns> public string Serialize(T obj) { var items = new List <object>(); foreach (var field in _fields) { items.Add(field.GetValue(obj)); } foreach (var prop in _properties) { items.Add(prop.GetValue(obj, null)); } return(CSV.ItemsToCsv(items, _settings, _riskyChars, _forceQualifierTypes)); }
/// <summary> /// Serialize the header for the CSV file /// </summary> /// <returns></returns> public string SerializeHeader() { var headers = new List <object>(); foreach (var field in _fields) { headers.Add(field.Name); } foreach (var prop in _properties) { headers.Add(prop.Name); } return(CSV.ItemsToCsv(headers, _settings, _riskyChars, _forceQualifierTypes)); }
/// <summary> /// Write the data table to a stream in CSV format /// </summary> /// <param name="dt">The data table to write</param> public void Write(DataTable dt) { if (_settings.HeaderRowIncluded) { var headers = new List <object>(); foreach (DataColumn col in dt.Columns) { headers.Add(col.ColumnName); } _writer.Write(CSV.ItemsToCsv(headers, _settings, _riskyChars, _forceQualifierTypes)); _writer.Write(_settings.LineSeparator); } foreach (DataRow dr in dt.Rows) { _writer.Write(CSV.ItemsToCsv(dr.ItemArray, _settings, _riskyChars, _forceQualifierTypes)); _writer.Write(_settings.LineSeparator); } }
/// <summary> /// Write a single line to this CSV /// </summary> /// <param name="items"></param> public async Task WriteLineAsync(IEnumerable <object> items) { await _writer.WriteAsync(CSV.ItemsToCsv(items, _settings, _riskyChars, _forceQualifierTypes)); await _writer.WriteAsync(_settings.LineSeparator); }
/// <summary> /// Write a single line to this CSV /// </summary> /// <param name="items"></param> public void WriteLine(IEnumerable <object> items) { _writer.Write(CSV.ItemsToCsv(items, _settings, _riskyChars, _forceQualifierTypes)); _writer.Write(_settings.LineSeparator); }