Espero que les sirva el siguiente codigo, funciona para
pegar
informacion desde
excel
a un
DataGridView
utilizando el ClipBoard.
Dim data As IDataObject = Clipboard.GetDataObject
Dim i As Integer = 0
Dim j As Integer = 0
If Not data.GetDataPresent("CSV", False) Then Return
Try
'Obtenemos el texto almacenado en el portapapales
Dim s As String = Clipboard.GetText
'hacemos un split para organizar la informacion por lineas
Dim lines As String() = s.Split(New Char(1) {ControlChars.Cr, _ ControlChars.Lf}, StringSplitOptions.RemoveEmptyEntries)
'Ciclo para cada linea del copy
For Each line As String In lines
'Creamos una fila referenciando a la tabla datasource del DataGridView
Dim dr As DataRow = tablagrid.NewRow()
'Obtenemos las celdas que el usuario copia
Dim cells As String() = line.Split(ControlChars.Tab)
'Burbuja para asignar cada uno de los datos de cada columna copia
For Each cell As String In cells
If j = 0 Then
dr.Item(j) = 0
Else
dr.Item(j) = cell
End If
j = j + 1
Next
i = i + 1
j = 0
'Agregamos la fila a la tabla
tablagrid.Rows.Add(dr)
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Dim data As IDataObject = Clipboard.GetDataObject
Dim i As Integer = 0
Dim j As Integer = 0
If Not data.GetDataPresent("CSV", False) Then Return
Try
'Obtenemos el texto almacenado en el portapapales
Dim s As String = Clipboard.GetText
'hacemos un split para organizar la informacion por lineas
Dim lines As String() = s.Split(New Char(1) {ControlChars.Cr, _ ControlChars.Lf}, StringSplitOptions.RemoveEmptyEntries)
'Ciclo para cada linea del copy
For Each line As String In lines
'Creamos una fila referenciando a la tabla datasource del DataGridView
Dim dr As DataRow = tablagrid.NewRow()
'Obtenemos las celdas que el usuario copia
Dim cells As String() = line.Split(ControlChars.Tab)
'Burbuja para asignar cada uno de los datos de cada columna copia
For Each cell As String In cells
If j = 0 Then
dr.Item(j) = 0
Else
dr.Item(j) = cell
End If
j = j + 1
Next
i = i + 1
j = 0
'Agregamos la fila a la tabla
tablagrid.Rows.Add(dr)
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try