in src/IdFix/Controls/IdFixGrid.cs [273:295]
public void ToCsv(StreamWriter writer)
{
Func<object, string> csvEscape = (object obj) =>
{
if (obj == null)
{
return string.Empty;
}
var str = obj.ToString();
return string.IsNullOrEmpty(str) ? string.Empty : str.IndexOf(",") > -1 ? string.Format("\"{0}\"", str) : str;
};
// write the headers
writer.WriteLine(string.Join(",", this.Columns.Cast<DataGridViewColumn>().Select(c => c.Name.ToUpper(CultureInfo.CurrentCulture))));
// now we write all the rows from the grid
foreach (DataGridViewRow row in this.Rows)
{
writer.WriteLine(string.Join(",", row.Cells.Cast<DataGridViewCell>().Select(c => csvEscape(c.Value))));
}
}