none
Exportar Gridview a excel !! RRS feed

  • Pregunta

  • Saludos 

    tengo un codigo que exporta los datos de un datagrid a excel pero el problema que

    tengo es que en el excel no se guardan los headers de las columnas del datagrid 

    este es mi codigo :

                    

    nmExcel.ApplicationClass ExcelApp = new nmExcel.ApplicationClass();
                ExcelApp.Application.Workbooks.Add(Type.Missing);
                ExcelApp.Columns.ColumnWidth = 12;
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    DataGridViewRow Fila = data.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 .. ");
                }

    espero que me puedan ayudar con esto 

    de antemano gracias !

    lunes, 25 de junio de 2012 22:15

Todas las respuestas

  • Pero el asunto es nada más de agregar los títulos antes del primer bucle FOR. y luego correr el índice de celdas una fila más abajo, o sea i + 2.  ¿Cuál es la dificultad que está teniendo para lograrlo?

    Jose R. MCP
    Code Samples

    • Propuesto como respuesta By AlaN martes, 26 de junio de 2012 11:53
    martes, 26 de junio de 2012 6:04
    Moderador
  • Gracias Ya esta resuelto

                nmExcel.ApplicationClass ExcelApp = new nmExcel.ApplicationClass();
                ExcelApp.Application.Workbooks.Add(Type.Missing);
                ExcelApp.Columns.ColumnWidth = 12;
                ExcelApp.Cells.get_Range("A1", "T1").Borders.LineStyle = 1;
                
                // IMPRIMIR LOS HEADERS EN EL DOCUMENTO
                for (int z = 0; z < data.Columns.Count; z++)
                {
                    DataGridViewColumn col = data.Columns[z];
                        for (int i = 0; i < 1; i++)
                        {
                            DataGridViewRow Fila = data.Rows[i];
                            ExcelApp.Cells[i + 1, z + 1] = col.HeaderText;
                        }
                }

                // IMPRIMIR LOS DATOS EN EL DOCUMENTO
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    DataGridViewRow Fila = data.Rows[i];

                    for (int j = 0; j < Fila.Cells.Count; j++)
                    {
                        ExcelApp.Cells[i + 2, j + 1] = Convert.ToString(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 .. ");
                }


    jueves, 28 de junio de 2012 14:16