1.14.2010

Exportar DataGridView a Excel en C#

Veremos una manera sencilla de hacerlo.
1.- Como primera opción tenemos que, seleccionar los datos directamente en el DataGridView luego Ctrl +C , Abrir el Excel un nuevo libro y Ctrl + V.

2.- Codificando
:



Nombre del DataGridView : dtgDetalle
Añadimos la Referencia:

Cabecera :
using nmExcel = Microsoft.Office.Interop.Excel;

Evento Click del Boton Exportar:

//***********************************************************
private void btnExportar_Click(object sender, EventArgs e)
{
nmExcel.ApplicationClass ExcelApp = new nmExcel.ApplicationClass();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Columns.ColumnWidth = 12;
for (int i = 0; i < dtgDetalle.Rows.Count; i++)
{
DataGridViewRow Fila = dtgDetalle.Rows[i];
for (int j = 0; j < Fila.Cells.Count; j++)
{
ExcelApp.Cells[i + 1, j + 1] = Fila.Cells[j].Value;
}
}
// ---------- cuadro de dialogo para Guardar
SaveFileDialog CuadroDialogo = new SaveFileDialog();
CuadroDialogo.DefaultExt = "xls";
CuadroDialogo.Filter = "xls file(*.xls)|*.xls";
CuadroDialogo.AddExtension = true;
CuadroDialogo.RestoreDirectory = true;
CuadroDialogo.Title = "Guardar";
CuadroDialogo.InitialDirectory = @"c:\";
if (CuadroDialogo.ShowDialog() == DialogResult.OK)
{
ExcelApp.ActiveWorkbook.SaveCopyAs(CuadroDialogo.FileName);
ExcelApp.ActiveWorkbook.Saved = true;
CuadroDialogo.Dispose();
CuadroDialogo = null;
ExcelApp.Quit();
}
else
{
MessageBox.Show("No se pudo guardar Datos .. ");
}
}
//**************************************************

Eso es todo ...