none
EXPORTAR DATAGRIDVIEW A EXCEL "FORMATO NUMEROS" RRS feed

  • Pregunta

  • BUENAS, MI CONSULTA ES COMO EXPORTO UNA COLUMNA QUE CONTIENE EJEMPLO: "02154870", POR QUE EL CODIGO QUE TENGO LO EXPORTA SIN EL CERO DE ADELANTE EJEMPLO: "2154870", EL CODIGO QUE USO ES EL SIGUIENTE:

    EL CÓDIGO DE MI MODULO:

    Module Exportar_Consulta_Clientes

        Function llenarExcelListaCliente(ByVal ElGrid As DataGridView) As Boolean

            'Creamos las variables
            ElGrid.Columns(0).Name = "IDCliente"
            ElGrid.Columns(1).Name = "Nro_Documento" -------> ejemplo: 02154870 al exportar 2154870
            ElGrid.Columns(2).Name = "Apellidos_Nombres"

            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

                exLibro = exApp.Workbooks.Add

                exHoja = exLibro.Worksheets.Add()

                Dim NCol As Integer = ElGrid.ColumnCount

                Dim NRow As Integer = ElGrid.RowCount

                For i As Integer = 1 To NCol

                    exHoja.Cells.Item(1, i) = ElGrid.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) = ElGrid.Item(Col, Fila).Value

                    Next

                Next

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

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

                exHoja.Columns.AutoFit()

                exApp.Application.Visible = True

                exHoja = Nothing

                exLibro = Nothing

                exApp = Nothing

            Catch ex As Exception

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

                Return False

            End Try

            Return True

        End Function

    Y DESDE MI FORMULARIO TENGO UN BOTON CON EL CODIGO:

        Private Sub CmdExportarExcel_Click(sender As Object, e As EventArgs) Handles CmdExportarExcel.Click
            llenarExcelListaCliente(ClientesDataGridView)
        End Sub

    DE ANTEMANO LES AGRADECERE SU AYUDA.


    edwincm



    • Editado Edwintech miércoles, 30 de octubre de 2019 23:58
    miércoles, 30 de octubre de 2019 21:58

Respuestas

  • Puedes poner un apóstrofe al principio:

    For Fila As Integer = 0 To NRow - 1

        For Col As Integer = 0 To NCol - 1

            exHoja.Cells.Item(Fila + 2, Col + 1) = "'" & ElGrid.Item(Col, Fila).Value

        Next

    Next


    Saludos, Javier J

    • Propuesto como respuesta Pablo Rubio jueves, 31 de octubre de 2019 16:12
    • Marcado como respuesta Edwintech martes, 5 de noviembre de 2019 21:05
    jueves, 31 de octubre de 2019 7:26
  • Hola Edwin, el tema es que se debería configurar la columna del excel a Texto, pero como generas un nuevo archivo eso no se puede hacer, o por lo menos yo no lo se, pero hay un truco para eso, similar a lo que te recomienda Javier, pero para el ejemplo utilizamos ACSII, primero recogemos en una variable string el valor de la celda de la columna donde quiers convertir, según el ejemplo la columna2 y luego efecuamos el truco ej:

       For fila = 0 To Grilla.RowCount - 1
    
                For Col As Integer = 0 To NCol - 1
                    If R = 2 Then
                        Dim Text As String = Grilla.Item(Col, fila).Value
                        exHoja.Cells.Item(fila + 1, R) = " " & Text & " "
                    Else
                        exHoja.Cells.Item(fila + 1, R) = Grilla.Item(Col, fila).Value
                    End If
    
                    R += 1
                Next
                R = 1
            Next

     Donde tememos "" &   Text   &   "" en el medio de las comillas colocamos el chart de esta forma  Alt + 0160 esto generará un espacio, pero, no un espacio común ya que si fuera así excel lo eliminaría y quedaría nuevamente como número. El caso que se trata de un Espacio Duro o espacio de no separación y como tal aunque no lo veamos en medio hay un charters entonces quedaría  " " &   Text   &   " " con el espacio duro en medio de las comillas. Habría que verificar si no da problemas con la culture, yo probé con (mx MX) (es ES) y no tube problemas. El resultado en el excel

    Espero te sirva saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    • Propuesto como respuesta Pablo Rubio jueves, 31 de octubre de 2019 16:12
    • Marcado como respuesta Edwintech martes, 5 de noviembre de 2019 21:04
    jueves, 31 de octubre de 2019 10:42

Todas las respuestas

  • Puedes poner un apóstrofe al principio:

    For Fila As Integer = 0 To NRow - 1

        For Col As Integer = 0 To NCol - 1

            exHoja.Cells.Item(Fila + 2, Col + 1) = "'" & ElGrid.Item(Col, Fila).Value

        Next

    Next


    Saludos, Javier J

    • Propuesto como respuesta Pablo Rubio jueves, 31 de octubre de 2019 16:12
    • Marcado como respuesta Edwintech martes, 5 de noviembre de 2019 21:05
    jueves, 31 de octubre de 2019 7:26
  • Hola Edwin, el tema es que se debería configurar la columna del excel a Texto, pero como generas un nuevo archivo eso no se puede hacer, o por lo menos yo no lo se, pero hay un truco para eso, similar a lo que te recomienda Javier, pero para el ejemplo utilizamos ACSII, primero recogemos en una variable string el valor de la celda de la columna donde quiers convertir, según el ejemplo la columna2 y luego efecuamos el truco ej:

       For fila = 0 To Grilla.RowCount - 1
    
                For Col As Integer = 0 To NCol - 1
                    If R = 2 Then
                        Dim Text As String = Grilla.Item(Col, fila).Value
                        exHoja.Cells.Item(fila + 1, R) = " " & Text & " "
                    Else
                        exHoja.Cells.Item(fila + 1, R) = Grilla.Item(Col, fila).Value
                    End If
    
                    R += 1
                Next
                R = 1
            Next

     Donde tememos "" &   Text   &   "" en el medio de las comillas colocamos el chart de esta forma  Alt + 0160 esto generará un espacio, pero, no un espacio común ya que si fuera así excel lo eliminaría y quedaría nuevamente como número. El caso que se trata de un Espacio Duro o espacio de no separación y como tal aunque no lo veamos en medio hay un charters entonces quedaría  " " &   Text   &   " " con el espacio duro en medio de las comillas. Habría que verificar si no da problemas con la culture, yo probé con (mx MX) (es ES) y no tube problemas. El resultado en el excel

    Espero te sirva saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    • Propuesto como respuesta Pablo Rubio jueves, 31 de octubre de 2019 16:12
    • Marcado como respuesta Edwintech martes, 5 de noviembre de 2019 21:04
    jueves, 31 de octubre de 2019 10:42