domingo, 12 de agosto de 2012

Exportar a Excel DatagridView en C#.NET 2008, SQL y BD AdventureWorks

Bueno aqui lo que haremos sera exportar una grilla cargada del formulario a Excel:



bueno para eso cargamos la grilla con alguna BD la que deseen yo lo que hice para este ejemplo fue poner este codigo en el evento Load del Form

            string constr = @"Data Source=XSaint;Initial Catalog=AdventureWorks;Integrated Security=True";
            SqlConnection con = new SqlConnection(constr);
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Production.Culture", con);
            DataSet ds = new DataSet();
            da.Fill(ds, "Categories");
            dataGridView1.DataSource = ds.Tables[0];
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;

            }
Ahora cargamos la referencia:
Pulsamos Aceptar. Ahora escribimos(o copian :D) esta linea
using nmExcel = Microsoft.Office.Interop.Excel;
lo colocan debajo de la llave de namespace WindowsFormsApplication1. y en el evento click del Boton Exportar a Excel ponen este codigo:
nmExcel.ApplicationClass ExcelApp = new nmExcel.ApplicationClass();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Columns.ColumnWidth = 12;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
DataGridViewRow Fila = dataGridView1.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 .. ");
}
ahora al presionar el boton les saldra una ventana para que escriban el nombre del archivo Excel.
y cuando abran el documento les saldra como la tabla:

0 comentarios:

Publicar un comentario