Exportar la información de un DataGridView a Excel – C#

Exportar la información de un DataGridView a Excel – C#

¿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.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

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í:

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 excel para todos tus proyectos que asi lo requieras.

Por favor comparte esta información en tus redes sociales y si tienes alguna duda o comentario no dudes en escribirme en la sección de comentarios de este blog.

Hasta luego!

Clic para valorar esta información
[Total: 1 Promedio: 5]