Exportación a Excel con C# | Parte 1


Actualizado: Exportación a Excel con C# | Parte 2Exportación a Excel con C# | Parte 3

Cuando necesitamos crear reportes en Excel y no solo exportar información desde nuestro programa son muchas las personas que utilizan las COM Interop, aunque hay otros que utilizan proyectos como el de ClosedXML para crear archivos sin usar Excel; ¿cuál usar? eso dependerá a lo que necesitemos en el proyecto.

Ahora si vamos al tema principal. En esta pequeña serie de artículos veremos la exportación usando C# y la Interop de Excel, pero antes de comenzar exportando analicemos  un poco lo que vamos a hacer.

Partiremos de una tabla como esta.

Tabla

Pasando luego por agregar los Totales, Promedios y Media quedando así.

TablaLlena

Y terminar en algo como esto.

TablaGrafico

Los Totales los he creado con esta macro. Esta macro nos va a servir para cuando vayamos a exportar usando C#.

Sub Macro1()
'
' Macro1 Macro
'
'
    Range("F3").Select
    ActiveCell.FormulaR1C1 = "=SUM(RC[-4]:RC[-1])"
    Range("F3").Select
    Selection.AutoFill Destination:=Range("F3:F6"), Type:=xlFillDefault
    Range("F3:F6").Select
    Range("B7").Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
    Range("B7").Select
    Selection.AutoFill Destination:=Range("B7:E7"), Type:=xlFillDefault
    Range("B7:E7").Select
End Sub

Usando otra vez una macro he creado la Gráfica. Y el código es el siguiente.

Sub Macro2()
'
' Macro2 Macro
'
'
    Range("A2:G6").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Range("Hoja1!$A$2:$G$6")
End Sub

Esto sería todo lo que necesitamos por ahora, ¿Por qué? Sencillo… si alguna vez necesitamos hacer una exportación especial solo tenemos que usar la herramienta de Visual Basic for Applications (VBA) que viene incluida en Excel y obtendremos un código que podremos pasar a C# y generalizarlo un poco para que nos sirva en varios casos y no solo en uno.

En el siguiente artículo veremos lo ultimo que he mencionado, es decir, pasaremos este código en VBA a C# y lo generalizaremos.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s