Visual Basic.NET - Pegar datos de la planilla excel al Datagridview vb.net

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Pegar datos de la planilla excel al Datagridview vb.net

Publicado por Eric (1 intervención) el 25/10/2019 20:31:04
Muy buenas tardes, he estado tratando de pegar datos desde la planilla Excel al datagridview, he intentado con varios códigos que he encontrado pero ninguno me a funcionado como yo esperaba, puesto que he colocado un label en el formulario que me muestra uno de los elementos del datagridview cuando este sufra algún cambio en las celdas y, cuando pego los datos el label no cambia, sin embargo en el momento que modifico un valor manualmente, el label se actualiza. Necesito esto para mi proyecto, es para mi tesis y lamentablemente no soy programador por lo no tengo todas las nociones para dar solución a los problemas que me surjan durante el desarrollo de mi software, de antemano muchas gracias por su tiempo.
por ejemplo he utilizado este

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
 
    If e.Control AndAlso e.KeyCode = Keys.V Then
        Try
            For Each line As String In Clipboard.GetText.Split(vbNewLine)
                Dim item() As String = line.Trim.Split(vbTab)
                If item.Length = Me.DataGridView1.ColumnCount Then
                    Me.DataGridView1.Rows.Add(item)
                End If
            Next
        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End If
End Sub

tambien he intentado con un boton

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub btnPegar_Click(sender As Object, e As EventArgs) Handles btnPegar.Click
    Try
        Dim clip As IDataObject = Clipboard.GetDataObject
        Dim lsPortapapeles As String = CStr(clip.GetData(DataFormats.UnicodeText))
        Dim laFilas() As String = lsPortapapeles.Split(CChar(vbCrLf))
        Dim laCabecera() As String = laFilas(0).Split(CChar(vbTab))
        '
 
        Dim dt As DataTable = New DataTable()
        Dim column As DataColumn
        Dim dr As DataRow
 
        DataGridView1.DataSource = dt.DefaultView
        'Carga de cabecera
        For Cabecera As Integer = 0 To laCabecera.GetUpperBound(0)
            column = New DataColumn()
            column.DataType = Type.GetType("System.String")
            column.ColumnName = laCabecera(Cabecera)
            dt.Columns.Add(column)
        Next
        'Carga de datos
        Dim laFila() As String
        For Fila As Integer = 1 To laFilas.GetUpperBound(0) - 1
            laFila = laFilas(Fila).Split(CChar(vbTab))
            dr = dt.NewRow
            '
            For Columna As Integer = 0 To laFila.GetUpperBound(0)
                dr(Columna) = laFila.GetValue(Columna)
            Next
            dt.Rows.Add(dr)
        Next
        DataGridView3.DataSource = dt
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
y tambien he probado con un botón que carga un archivo excel para posteriormente mostrar el contenido de las celdas de excel en el datagriview, pero lamentablemente todos estos códigos producen el mismo efecto, (es como si el usuario puede ver los datos en pantalla pero el programa no jaaja) y necesito que sea como lo platee en un comienzo, quiero que al pegar, automáticamente se actualice el label y no que el usuario deba modificar un valor del datagriview para que se actualice, idealmente prefiero que fuera como el código de pegar mediante Ctrl + V
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder