Les comparto el codigo fuente que diseñe para pegar desde excel a un datagridview en windows forms.
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