Como exportar datos a Excel rapidamente con .Net

Quizás uno de los temas que mas dolores de cabezas nos dan al momento de desarrollar, es el tiempo que tardan algunos procesos al momento de exportar los datos. Una de las exportaciones mas lentas es sin duda la que se lleva a cavo hacia Excel desde .NET

En el siguiente ejemplo les mostrare como realizar la carga de manera rápida y efectiva.

Lo Primero que deben hacer es descargar los archivos que se encuentran a continuación (clic sobre los link).

Referencias (Dll)

DocumentFormat OpenXml (5.0 MiB)

WindowsBase (1.2 MiB)

Clase

CreateExcelFile (11.2 KiB)

Esta clase permite enviar un datatable o una lista de un objeto sin importar que tipo de objeto sea, solo debe cumplir que debe tener sus propiedades bien definidas.

ejemplo :

List clientes = new List();

Luego deben agregar estos archivos a su proyecto los 2 primeros corresponden a referencias y la última es la clase que permite la exportación de datos a Excel.

Para exportar los datos solo deben llamar al método

Pueden enviar un DataTable en lugar de una lista, y el resultado será el mismo.

Saludos

CC BY-NC-ND 4.0 Como exportar datos a Excel rapidamente con .Net by QualityInfoSolutions is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

You may also like...

22 Responses

  1. Cesar Ali dijo:

    Muy buenas referencias . . .

  2. jacinto chavez a dijo:

    gran aporte cre eso en una dll y lo uso en vb.net quisiera esa clase tambien en vb net para no realizar la dll que ahora uso gracias.

    • Lamento informarte que la clase no se puede convertir a vb.net, ya que hay una parte donde convierte cualquier objeto en datatable y al hacerlo en vb.net se comporta de manera inestable. Vas a tener que seguir usándolo como dll.

      Saludos

  3. Esta genial esta función se llevo mis palmas de oro, excelente aporte

  4. azepeda dijo:

    Felicidades, gracias por el aporte

  5. Carlos dijo:

    Muy buen aporte, pero se me complico entenderlo un poco

  6. Ricardo dijo:

    Hola buen aporte, podrías resubir por favor el link del DocumentFormat OpenXml, ya que no lo puedo descargar, me aparece despues de un tiempo descarga fallida. Gracias

  7. Leodev dijo:

    Muy bueno, le falta un catch para IOException pero funciona super.

  8. carlos mora dijo:

    super las dll, la pregunta como hago para que abra de una el excel

    • public void AbrirExcel(string file)
      {
      ProcessStartInfo startInfo = new ProcessStartInfo();
      startInfo.FileName = “excel.exe”;
      startInfo.Arguments = “\”” + file + “\””;
      Process.Start(startInfo);
      }

  9. AYJ dijo:

    Buenas tardes amigo, ante todo gracias por tu aporte, quería consultarte lo siguiente: Al exportar algo de 600000 registros el excel me sale que está dañado. Le estoy enviando una lista con un parámetro. No se si me puedas dar una mano.

  10. Jose dijo:

    Excelente aporte amigo, gracias.

  11. Jose dijo:

    no logro incorporarle los using

  12. Jose dijo:

    para que me reconozca las clases

    alguna sugerencia??

  13. Jorge dijo:

    Muy padre. Si es mucho pedir; me puedes apoyar con material para continuar? quiero migrar una pequeña app que envía más de 30,000 registros y se lleva una hora. La información la obtengo de una base de datos sql desde c#; es una consulta bastante compleja y de ahí envío mediante el “reader” al excel. Espero me puedas apoyar. Gracias

  14. Francisco dijo:

    Hola funciona genial, pero mi consulta es si quiero agregar mas hojas con otras listas al mismo excel como seria??

  15. Sebastian dijo:

    Es grandiosa la velocidad con la que realiza el procesamiento gran aporte! Lo que si me trae problemas cuando dentro de los datos hay numero decimales (con coma) por ejemplo el importe a abonar por un producto, excel toma los numeros como texto y eso hace que excel tenga que reparalo al abrir el archivo. Alguna solucion para este inconveniente? Gracias.

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Contáctenos