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
tambien he intentado con un boton
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
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
Valora esta pregunta


0