¿Estas desarrollando en C# y necesitas exportar información de un datagirdview a excel? Este post es para ti! Hoy vamos a ver precisamente como exportar la información de un datagridview a excel en este lenguaje de programación, veremos cómo importar las referencias necesarias y la función para implementar este funcionamiento en nuestro proyecto.
Recientemente he estado trabajando algo de tiempo con Visual Studio y C# para un proyecto de un cliente.
Realmente hace ya tiempo que no trabajaba en este lenguaje aunque si con Java que es bastante similar.
Aprovechando esto decidi hacer un pequeño post sobre como exportar la información de un datagridview a Excel, dado que el uso de datagridview en este ambiente es muy común.
Antes de comenzar mencionar que para este funcionamiento necesitaremos incluir en nuestro proyecto la referencia o libreria necesaria de Microsoft Excel.
AGREGAR LA REFERENCIA DE EXCEL
Para hacer esto vamos a nuestro explorador de soluciones.
Dentro de nuestro proyecto vamos a Referencias.
Clic derecho en Referencias y Agregar Referencia.
En la parte superior derecha buscamos «Excel».
Agregar Microsoft.Office.Interop.Excel a nuestro proyecto.
Con esto ya podremos implementar la funcionalidad y solo será necesario el codigo para hacerlo.
FUNCIÓN PARA EXPORTAR LA INFORMACIÓN DE UN DATAGRIDVIEW A EXCEL
Imaginemos que tenemos nuestro DataGridView en nuestra aplicación ya con información.
Supongamos que agregamos un boton arriba de nuestra tabla para la función de Exportar a Excel.
Dentro de este botón simplemente llamamos a la función ExportarExcel();
Esta función lucirá así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
public void ExportarExcel()
{
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = false;
worksheet = workbook.Sheets[«Hoja1»];
worksheet = workbook.ActiveSheet;
worksheet.Name = «Usuarios»;
// Cabeceras
for (int i = 1; i < dgv_usuarios.Columns.Count + 1; i++)
{
if (i > 1 && i < dgv_usuarios.Columns.Count)
{
worksheet.Cells[1, i] = dgv_usuarios.Columns[i – 1].HeaderText;
}
}
// Valores
for (int i = 0; i < dgv_usuarios.Rows.Count – 1; i++)
{
for (int j = 0; j < dgv_usuarios.Columns.Count; j++)
{
if (j > 0 && j < dgv_usuarios.Columns.Count – 1)
{
worksheet.Cells[i + 2, j + 1] = dgv_usuarios.Rows[i].Cells[j].Value.ToString();
}
}
}
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = «Archivos de Excel|*.xlsx»;
saveFileDialog.Title = «Guardar archivo»;
saveFileDialog.FileName = «NombredeArchivoDefault»;
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != «»)
{
Console.WriteLine(«Ruta en: «+saveFileDialog.FileName);
workbook.SaveAs(saveFileDialog.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
app.Quit();
}
}
|
Como puedes observar al final hemos incluido la funcionalidad de que pregunte al usuario donde desea guardar la información, esto lo hemos hecho con SaveFileDialog.
Espero que este pequeño tutorial y codigo fuente sea de tu utilidad para que puedas implementar la funcionalidad de exportar la información de un datagridview a excelpara todos tus proyectos que asi lo requieras.
Excelente codigo!. Hice con él una clase y retoqué un poco para que salgan la primer y ultima columna. Muchas gracias.
Hola Marcelo muchas gracias por leernos y compartir tu opinión ?