Ferramentas de Utilizador

Ferramentas de Site


dev_net:vb.net:excel_para_datagridview

Copiar dados do Excel para DataGridView

A DataGridView já tem a possibilidade de permitir copiar os seus dados e colar noutra aplicação. A propriedade que permite isto é a ClipboardCopyMode, que por defeito está seleccionada para EnableWithAutoHeaderText. No entanto o inverso não está previsto.

Para adicionar esta possibilidade à DataGridView é necessário ler a classe Clipboard através da sua função GetText(). Deste modo consegue-se ler o que está no Clipboard e colocar na DataGridView.

Este exemplo, que mostra como implementar esta funcionalidade, utiliza uma DataGridView sem estar vinculada a dados e utiliza a combinação de teclas Ctrl+V para colar os dados. Verifica ainda se o número de colunas copiadas é igual ao número de colunas existentes.

Exemplo

   ' No evento KeyDown da DataGridView
    Private Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
 
        ' Caso as teclas pressinadas sejam CTRL+V
        If e.Control AndAlso e.KeyCode = Keys.V Then
 
             Try
 
                ' Ciclo nas linhas copiadas
                For Each line As String In Clipboard.GetText.Split(vbNewLine)
 
                    ' Separa as colunas referentes à linha actual
                    Dim item() As String = line.Trim.Split(vbTab)
 
                    ' Se o número de colunas for diferente mostra uma mensagem de erro
                    If item.Length <> Me.DataGridView1.ColumnCount Then
                        Dim str As String = "O número de colunas copiadas é diferente" & _
                                        " do número de colunas da DataGridView"
                        Throw New Exception(str)
                    End If
 
                    ' Adicionar a linha a DataGridView
                    Me.DataGridView1.Rows.Add(item)
                Next
 
            Catch ex As Exception
                ' Mensagem de erro caso exista
                MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
 
        End If
 
    End Sub

Autoria

Este artigo foi inicialmente escrito por Jorge Paulino para o seu blog VBTuga - Visual Basic em Português. Sofreu posteriormente pequenas alterações sintácticas pelos utilizadores desta wiki.

dev_net/vb.net/excel_para_datagridview.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)