using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; namespace Sleis.Utility { public class CsvUtility { public static string CreateLine(params object[] values) { StringBuilder line = new StringBuilder(); int count=1; foreach(object val in values) { if (count < values.Count()) { line.AppendFormat("{0},", MakeCsvSafe(val)); } //last line, do not include comma else { line.AppendFormat("{0}", MakeCsvSafe(val)); } count++; } return line.ToString(); } private static string MakeCsvSafe(object value) { string sValue = value==null ? "" : value.ToString(); StringBuilder sbValue = new StringBuilder(sValue); //wrap double quotes with double quotes //sbValue.Replace("\"", "\"\""); //make sure things are properly escaped if (sValue.Contains("\"") || sValue.Contains(",") || sValue.Contains("\n") || sValue.Contains("\r") || sValue.Contains(System.Environment.NewLine)) { sbValue.Insert(0, "\""); sbValue.Append("\""); } return sbValue.ToString(); } } }