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:

Qué es AJAX?

AJAX, anteriormente llamado "Atlas", acrónimo de Asynchronous JavaScript y XML, que simplemente, es una manera o técnica de transferir datos entre el servidor y el cliente sin necesidad de enviar toda la página, y creando así una devolución de datos completa. Esto permite obtener una mejor experiencia para el usuario, ya que carga el contenido dinámico se puede hacer en un segundo plano, sin refrescante y redibujar toda la página.

Cuando se implementa AJAX en nuestros proyectos, obtenemos aplicaciones que funcionan mucho más rápido, ya que las interfaces de usuario se pueden actualizar por partes sin tener que actualizar toda la página. Por ejemplo, al diligenciar un formulario que se captura en un sitio web, con AJAX se puede actualizar solo la parte en la que se selecciona la ciudad de residencia sin tener que actualizar toda la página web completa.
"" 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:

Solution for IE10 error: Sys.ArgumentOutOfRangeException: Value must be an integer asp.net

En un proyecto proyecto Asp.Net con controles AJAX (ModalPopup) en Internet Explorer 10 (IE10) se me presento la siguiente inconsistencia "Solution for IE10 error: Sys.ArgumentOutOfRangeException: Value must be an integer asp.net", la solución que se encontró es agregar la siguiente linea, ya sea en la Master.page del proyecto o en el encabezado de mi pagina .aspx.

<meta http-equiv="X-UA-Compatible" content="IE=9" />

La etiqueta meta X-UA-Compatible permite elegir qué versión de Internet Explorer la página se debe representar. Es utilizado por Internet Explorer 8 para especificar si una página se debe representar como IE 7 (vista de compatibilidad) o IE 8 (normas vista).

Las opciones que tiene para el contenido (content) son:
  • "IE=5" 
  • "IE=EmulateIE7" 
  • "IE=7" 
  • "IE=EmulateIE8" 
  • "IE=8" 
  • "IE=EmulateIE9" 
  • "IE=9" 
  • "IE=edge"

Se utiliza la etiqueta meta X-UA-Compatible en las páginas web donde se sospecha que Internet Explorer 10 intentará representar la página en una forma incorrecta.  Una forma de conocer bajo que modo de compatibilidad se ejecuta una pagina aspx en asp.net puede ayudarlos a solucionar muchos inconvenientes.
"" 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: