Exportar DataTable a CSV en C#

Anexo código que nos permite exportar un DataTable a un archivo plano con extensión CSV desde Visual studio C#

Para este ejemplo creamos un DataTable:

private DataTable TablaEnvioSms()
{
   DataTable dtSms = new DataTable();

   dtSms.Columns.Add("Fila", typeof(string));
   dtSms.Columns.Add("Nombres", typeof(string));
   dtSms.Columns.Add("Apellidos", typeof(string));
   dtSms.Columns.Add("Direccion", typeof(string));
   dtSms.Columns.Add("Telefono", typeof(string));
   return dtSms;
}

Este es el evento Click del boton (btnExportar) en la pagina aspx

protected void btnExportar_Click(object sender, EventArgs e)
    {
        DataTable dtSms = new DataTable();

        //Asignamos estructura del DataTable
        dtSms = TablaEnvioSms();
        DataRow newRow;

        //primera fila
        newRow = dtSms.NewRow();
        newRow["Fila"] = "1";
        newRow["Nombres"] = "Pedro Luis";
        newRow["Apellidos"] = "Ramirez Perez";
        newRow["Direccion"] = "Calle 1 No. 2 2";
        newRow["Telefono"] = "5555";
        dtSms.Rows.Add(newRow);

        //segunda fila
        newRow = dtSms.NewRow();
        newRow["Fila"] = "2";
        newRow["Nombres"] = "Maria tereza";
        newRow["Apellidos"] = "Ramirez Perez";
        newRow["Direccion"] = "Calle 1 No. 2 2";
        newRow["Telefono"] = "44444";
        dtSms.Rows.Add(newRow);
       

        //Realizamos el Llamado al metodo que exporta la estructura del DataTable.
        //Ademas recibe el nombre del archivo CSV y la ruta donde se almacenara.
        DataTableCSVFile(dtSms, "ExportarDatos.csv", "c://");

    }


Método que Exporta los datos y muestra el archivo para abrirlo.

public void DataTableCSVFile(DataTable dt,string sfilename, string strFilePath)
    {     
        StreamWriter sw = new StreamWriter(strFilePath + sfilename, false);
        int iColCount = dt.Columns.Count;

        // Escribiendo las Columnas del DataTable.
        for (int i = 0; i < iColCount; i++)
        {
            sw.Write(dt.Columns[i]);
            if (i < iColCount - 1)
            {
                sw.Write(",");
            }
        }

        sw.Write(sw.NewLine);

        // Escribiendo todas las Filas del DataTable.
        foreach (DataRow dr in dt.Rows)
        {
            for (int i = 0; i < iColCount; i++)
            {
                if (!Convert.IsDBNull(dr[i]))
                {
                    sw.Write(dr[i].ToString());
                }

                if (i < iColCount - 1)
                {
                    sw.Write(",");
                }
            }
            sw.Write(sw.NewLine);
        }
        sw.Close();

        Response.Clear();
        Response.ContentType = "application/csv";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + sfilename);
        Response.WriteFile(strFilePath + sfilename);
        Response.Flush();
        Response.End();
    }

Exportar un Dataset a Excel desde c# es una funcionalidad muy interesante, los invito a consultarla.

Si tienen alguna duda o ampliar la información me cuentan, hasta pronto.
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

1 comentario: