示例#1
0
        /// <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));
        }
示例#2
0
        /// <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));
        }
示例#3
0
        /// <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);
            }
        }
示例#4
0
        /// <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);
        }
示例#5
0
 /// <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);
 }