• Lunes 23 de Diciembre de 2024, 04:58

Autor Tema:  Exportar solo columnas visibles de datagrid a Excel  (Leído 6771 veces)

pirlespi

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Exportar solo columnas visibles de datagrid a Excel
« en: Miércoles 7 de Agosto de 2013, 12:44 »
0
Buenas,

Tengo el siguiente código y funciona perfectamente, salvo que exporta todas las columnas de mi datagrid mientras que solo necesito que exporte las que son visibles.

¿alguno sabe como conseguirlo?

Gracias!

Código: [Seleccionar]
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        'Creamos las variables

        Dim exApp As New Microsoft.Office.Interop.Excel.Application

        Dim exLibro As Microsoft.Office.Interop.Excel.Workbook

        Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet

        Try

            'Añadimos el Libro al programa, y la hoja al libro

            exLibro = exApp.Workbooks.Add

            exHoja = exLibro.Worksheets.Add()

            ' ¿Cuantas columnas y cuantas filas?


            Dim NCol As Integer = DataGridView1.ColumnCount


            Dim NRow As Integer = DataGridView1.RowCount



            'Aqui recorremos todas las filas, y por cada fila todas las columnas

            'y vamos escribiendo.

            For i As Integer = 1 To NCol


                exHoja.Cells.Item(1, i) = DataGridView1.Columns(i - 1).Name.ToString

            Next

            For Fila As Integer = 0 To NRow - 1

                For Col As Integer = 0 To NCol - 1

                    exHoja.Cells.Item(Fila + 2, Col + 1) = DataGridView1.Rows(Fila).Cells(Col).Value()

                Next

            Next

            'Titulo en negrita, Alineado al centro y que el tamaño de la columna

            'se ajuste al texto

            exHoja.Rows.Item(1).Font.Bold = 1

            exHoja.Rows.Item(1).HorizontalAlignment = 3

            exHoja.Columns.AutoFit()

            'Aplicación visible

            exApp.Application.Visible = True

            exHoja = Nothing

            exLibro = Nothing

            exApp = Nothing

        Catch ex As Exception

            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error al exportar a Excel")

        End Try

    End Sub

gerloxxx

  • Miembro MUY activo
  • ***
  • Mensajes: 121
    • Ver Perfil
Re:Exportar solo columnas visibles de datagrid a Excel
« Respuesta #1 en: Viernes 9 de Agosto de 2013, 20:54 »
0
Intenta condicionar que si no es visible no lo mande
       if not dataGridView1.Rows(x).Cells(y).Visible then

saludos

pirlespi

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re:Exportar solo columnas visibles de datagrid a Excel
« Respuesta #2 en: Lunes 12 de Agosto de 2013, 11:38 »
0
Buenas Gerloxxx,

Como el usuario es quién decide los campos que se deben ocultar en el datagrid para no exportarse al excel marcándolos con checkboxes lo que he hecho ha sido eliminar las columnas que seleccionen y listo.

Código: [Seleccionar]
If CheckBox1.Checked = False Then
                Me.DataGridView1.Columns.Remove("columna_a_eliminar")
            End If