Q:

Como se puede exportar archivo csv con asp.net c#

Buenas quisiera que me puedan estoy realizando un aplicativo por la cual tiene la funcionalidades de descargar un archivo en Formato Archivo de valores separados por comas de Microsoft Excel (.csv) 
ya definidas la columnas en ese archivo una vez que se descargue el usuario con esa ya plantilla tiene que escribir y guardar.
el problema es que cuando descargo el excel.
sale esto como vista previa que esta en la derecha
Pero cuando entro a la mismo archivo se aparece bien.
Ahora ese archivo yo lo ingreso y lo muestro en mi gridview 
Claro como sale algo raro en la vista previa en el gridview tambien sale lo mismo
Estoy usando la dll ClosedXML.Excel;
adjunto la imagen

Codigo que estoy realizando es el siguiente para crear el archivo csv 
 var wb = new XLWorkbook();
            var ws = wb.Worksheets.Add("Contacts");
            ws.Cell("A1").Value = "Fecha_Nacimiento";
            ws.Cell("B1").Value = "Número";
            ws.Cell("C1").Value = "Familia";
            ws.Cell("D1").Value = "Dni";
            ws.Cell("E1").Value = "Ruc";
            ws.Cell("F1").Value = "Apellido_Paterno";
            ws.Cell("G1").Value = "Apellido_Materno";
            ws.Cell("H1").Value = "Nombres";
            ws.Cell("I1").Value = "Celular";
            ws.Cell("J1").Value = "Correo";
            ws.Cell("K1").Value = "Dirección";
            Dtset.Tables[0].TableName = "Persona";

            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "";
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("content-disposition", "attachment;filename=Reporte.csv");

            using (MemoryStream MyMemoryStream = new MemoryStream())
            {
                wb.SaveAs(MyMemoryStream);
                MyMemoryStream.WriteTo(Response.OutputStream);
                Response.Flush();
                Response.End();
            }

Código para que muestre a la grilla.
 string csvPath = Server.MapPath("~/MyFolder/") + Path.GetFileName(inputGroupFile01.PostedFile.FileName);
                        inputGroupFile01.SaveAs(csvPath);
                        Label1.Text = inputGroupFile01.FileName + "\'s Información Cargada del excel.";
                        System.Data.DataTable dt = new System.Data.DataTable();

                        dt.Columns.AddRange(new DataColumn[11] { 
                        new DataColumn("Fecha_Nacimiento", typeof(string)),  
                        new DataColumn("Número", typeof(string)),  
                        new DataColumn("Familia", typeof(string)),  
                        new DataColumn("Dni", typeof(string)),  
                        new DataColumn("Ruc",typeof(string)),
                        new DataColumn("Apellido_Paterno",typeof(string)),
                         new DataColumn("Apellido_Materno",typeof(string)),
                         new DataColumn("Nombres",typeof(string)),
                         new DataColumn("Celular",typeof(string)),
                         new DataColumn("Correo",typeof(string)),
                          new DataColumn("Dirección",typeof(string))
                        });

                        string csvData = File.ReadAllText(csvPath, Encoding.GetEncoding("iso-8859-1"));

                        foreach (string row in csvData.Split('\n'))
                        {
                            if (!string.IsNullOrEmpty(row))
                            {
                                dt.Rows.Add();
                                int i = 0;
                                foreach (string cell in row.Split(','))
                                {
                                    dt.Rows[dt.Rows.Count - 1][i] = HttpUtility.HtmlDecode(cell);
                                    i++;
                                }
                            }
                        }

                        DataSet ds = new DataSet();
                        ds.Tables.Add(dt);

                        try
                        {
                            var results = from row in ds.Tables["Table1"].AsEnumerable() where row.Field<string>("NOMBRES") == "NOMBRE" select row;
                            foreach (DataRow row in results)
                            {
                                ds.Tables["Table1"].Rows.Remove(row);
                            }
                        }
                        catch { }

                        GridView1.DataSource = dt;
                        GridView1.DataBind();

A:

Solución para exportar con el formato CSV
lo que tenia que realizar o lo que estaba fallando era que también cuando se exporta con csv que es determinado o separado por comas debemos realizar el mismo formato a la columnas que se va exportar 
 que realice este código.
 builder.Append(string.Join(",", columnNames.ToArray())).Append("\n");

            foreach (DataRow row in dataTable.Rows)
            {
                List<string> currentRow = new List<string>();

                foreach (DataColumn column in dataTable.Columns)
                {
                    object item = row[column];

                    currentRow.Add(item.ToString());
                }

                rows.Add(string.Join(",", currentRow.ToArray()));
            }

            builder.Append(string.Join("\n", rows.ToArray()));

private System.Data.DataTable GetData()
        {
            System.Data.DataTable dt = new System.Data.DataTable("Plantilla");
            dt.Columns.Add("Fecha_Nacimiento");
            dt.Columns.Add("Numero");
            dt.Columns.Add("Familia");
            dt.Columns.Add("Dni");
            dt.Columns.Add("Ruc");
            dt.Columns.Add("Apellido_Paterno");
            dt.Columns.Add("Apellido_Materno");
            dt.Columns.Add("Nombres");
            dt.Columns.Add("Celular");
            dt.Columns.Add("Correo");
            dt.Columns.Add("Direccion");
            dt.Columns.Add("Razon_Social");

            return dt;
        }

var dataTable = GetData();
            StringBuilder builder = new StringBuilder();
            List<string> columnNames = new List<string>();
            List<string> rows = new List<string>();

            foreach (DataColumn column in dataTable.Columns)
            {
                columnNames.Add(column.ColumnName);
            }

            builder.Append(string.Join(",", columnNames.ToArray())).Append("\n");

            foreach (DataRow row in dataTable.Rows)
            {
                List<string> currentRow = new List<string>();

                foreach (DataColumn column in dataTable.Columns)
                {
                    object item = row[column];

                    currentRow.Add(item.ToString());
                }

                rows.Add(string.Join(",", currentRow.ToArray()));
            }

            builder.Append(string.Join("\n", rows.ToArray()));

            Response.Clear();
            Response.ContentType = "text/csv";
            Response.AddHeader("Content-Disposition", "attachment;filename=Plantilla.csv");
            Response.Write(builder.ToString());
            Response.End();

