none
Exportar todo los registros a excel desde VB.net RRS feed

  • Pregunta

  • Buenas noches, tengo un problema, quiero exportar todos los datos de una grilla, pero solo se descarga 100 y en total son 1200, sé que es por que esta paginado, pero hay alguna forma de exportar todo, sin tener que quitar el paginado, gracias de antemano por su apoyo.

    ESTE ES MI CODIGO:

    Private Sub btnExportaExcel_Click(sender As Object, e As EventArgs) Handles btnExportaExcel.Click

            Try
                If ((dgCuentaContable.Columns.Count = 0) Or (dgCuentaContable.Rows.Count = 0)) Then
                    Exit Sub
                End If

                'Creando Dataset para Exportar
                Dim dset As New DataSet
                'Agregar tabla al Dataset
                dset.Tables.Add()
                'AGregar Columna a la tabla
                For i As Integer = 0 To dgCuentaContable.ColumnCount - 1
                    If dgCuentaContable.Columns(i).Visible Then
                        dset.Tables(0).Columns.Add(dgCuentaContable.Columns(i).HeaderText)
                    End If
                Next
                'Agregar filas a la tabla
                Dim dr1 As DataRow
                Dim celda As Integer = 0

                For i As Integer = 0 To dgCuentaContable.RowCount - 1
                    dr1 = dset.Tables(0).NewRow
                    celda = 0
                    For j As Integer = 0 To dgCuentaContable.Columns.Count - 1
                        If dgCuentaContable.Columns(j).Visible Then
                            dr1(celda) = dgCuentaContable.Rows(i).Cells(j).Value
                            celda = celda + 1
                        End If
                    Next
                    dset.Tables(0).Rows.Add(dr1)
                Next

                Dim dr2 As DataRow
                dr2 = dset.Tables(0).NewRow
                celda = 0
                For i As Integer = 0 To dgCuentaContable.Columns.Count - 1
                    If dgCuentaContable.Columns(i).Visible Then
                        If dgCuentaContable.Columns(i).HeaderText = "Costo Ingreso" Then
                            dr2(celda) = lblCostoIngresoContable.Text
                        ElseIf dgCuentaContable.Columns(i).HeaderText = "Costo Depreciado" Then
                            dr2(celda) = lblTotalCostoDepreciado.Text
                        ElseIf dgCuentaContable.Columns(i).HeaderText = "Depreciacion Acumulada" Then
                            dr2(celda) = lblTotalDeprecAcumulada.Text
                        ElseIf dgCuentaContable.Columns(i).HeaderText = "Depreciación del Ejercicio" Then
                            dr2(celda) = lblTotalDepreciaciónEjercicio.Text
                        ElseIf dgCuentaContable.Columns(i).HeaderText = "Depreciacion Acumulada Actual" Then
                            dr2(celda) = lblTotalDeprecAcumuladaActual.Text
                        End If
                        celda = celda + 1
                    End If
                Next
                dset.Tables(0).Rows.Add(dr2)

                Dim aplicacion As New Excel.Application
                Dim wBook As Microsoft.Office.Interop.Excel.Workbook
                Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet

                wBook = aplicacion.Workbooks.Add()
                wSheet = wBook.ActiveSheet()

                Dim dt As System.Data.DataTable = dset.Tables(0)
                Dim dc As System.Data.DataColumn
                Dim dr As System.Data.DataRow
                Dim colIndex As Integer = 0
                Dim rowIndex As Integer = 0

                For Each dc In dt.Columns
                    colIndex = colIndex + 1
                    aplicacion.Cells(1, colIndex) = dc.ColumnName

                Next

                For Each dr In dt.Rows
                    rowIndex = rowIndex + 1
                    colIndex = 0
                    For Each dc In dt.Columns
                        colIndex = colIndex + 1
                        aplicacion.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)

                    Next
                Next


                'Configurar la orientacion de la  hoja y el tamaño
                'wSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape
                'wSheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperLegal
                
                wSheet.Rows.Item(1).Font.Bold = 1
                wSheet.Columns.AutoFit()

                '---------- cuadro de dialogo para Guardar

                Dim saveFileDialog1 As SaveFileDialog = New SaveFileDialog()
                
                saveFileDialog1.Filter = "xlsx file(*.xlsx)|*.xlsx"
                saveFileDialog1.FileName = "ReporteCuenta_" + DateTime.Now.ToString("yyyy-MM-dd_HHmmss")
                saveFileDialog1.FilterIndex = 2
                saveFileDialog1.RestoreDirectory = True

                If saveFileDialog1.ShowDialog() = DialogResult.OK Then
                    
                    wBook.SaveAs(saveFileDialog1.FileName)
                    MessageBox.Show("El documento fue exportado correctamente.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)

                End If

            Catch ex As Exception
                MessageBox.Show(ex.Message, "SISTEMAS", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try

        End Sub

    viernes, 7 de febrero de 2020 4:22