miércoles, 28 de agosto de 2013

Exportar a excell sencillo

En el siguiente código veremos cómo exportar el contenido de un DataGridView a un fichero Excel con WindowsForms usando C#.
Inicialmente tendremos que añadir la siguiente referencia al proyecto de tipo COM:
Microsoft Excel 12.0 Object Library
Para poder añadir la referencia anterior, tenemos que tener instalado previamente en nuestro sistema el Microsoft Excel.
El método nos preguntará por la ruta donde queremos almacenar el fichero en el disco mediante un objeto del tipo SaveFileDialog.
El código del método que rellena el documento excel es el siguiente:

///

/// Método que exporta a un fichero Excel el contenido de un DataGridView
///

/// DataGridView que contiene los datos a exportar
private void ExportarDataGridViewExcel(DataGridView grd)
{
    SaveFileDialog fichero = new SaveFileDialog();
    fichero.Filter = "Excel (*.xls)|*.xls";
    if (fichero.ShowDialog() == DialogResult.OK)
    {
        Microsoft.Office.Interop.Excel.Application aplicacion;
        Microsoft.Office.Interop.Excel.Workbook libros_trabajo;
        Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo;
        aplicacion = new Microsoft.Office.Interop.Excel.Application();
        libros_trabajo = aplicacion.Workbooks.Add();
        hoja_trabajo = 
            (Microsoft.Office.Interop.Excel.Worksheet)libros_trabajo.Worksheets.get_Item(1);
        //Recorremos el DataGridView rellenando la hoja de trabajo
        for (int i = 0; i < grd.Rows.Count - 1; i++)
        {
            for (int j = 0; j < grd.Columns.Count; j++)
            {
                hoja_trabajo.Cells[i + 1, j + 1] = grd.Rows[i].Cells[j].Value.ToString();
            }
        }
        libros_trabajo.SaveAs(fichero.FileName, 
            Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
        libros_trabajo.Close(true);
        aplicacion.Quit();
    }
}

No hay comentarios:

Publicar un comentario