vb.net para extrair dados do Excel Data GridView - excel, datagridview, vb.net-2010

eu tenho 78 colunas de excel e eu tenho 5 datagridviews.

Como eu faço conexão?

Respostas:

0 para resposta № 1

Eu entendo o que você quer alcançar, mas conseguiro máximo de qualquer resposta, seria melhor se você adicionar algum código ou alguma explicação adicional. Por exemplo, como alguém deve saber quais dados do Excel devem ser exibidos no DataGridView um, dois etc ...

De qualquer forma, eu recomendo que você divida a tarefa em duas etapas:

ReadExcel e DisplayData. Na minha opinião, a leitura de dados do arquivo excel via OLEDB é uma boa maneira de começar. Portanto, eu recomendo a leitura do seguinte artigo: http://www.codeproject.com/Tips/705470/Read-and-Write-Excel-Documents-Using-OLEDB

Para exibir os dados em um DataGridView, é necessário vincular um conjunto de dados a ele. Talvez você ache a seguinte postagem útil:

Como ligar o conjunto de dados a DataGridView no aplicativo do Windows

É ambos c # código, mas acho que fazer as coisas correrem para vb.net é uma tarefa fácil.

Edit: Encontrei alguns dos meus vb.net mais antigos que você pode usar. Não é tão bom pedaço de código, mas deve começar. Ele importa todos os dados de uma planilha de excel. Mas por favor, não copie e execute :)

Public Shared Function ImportExcelSheetData(ByVal ExcelFilePath         As String, _
ByVal SourceExcelSheetName  As String, _
ByRef pDestDataTable        As DataTable, _
ByRef ErrMsg                As String, _
Optional ByVal WithHeader   As Boolean = False) As Integer

Dim ConnectionString      As String   = ""
Dim WithHeaderString      As String   = ""
Dim nOutputRow            As Integer  = 0

Dim oleExcelCommand       As OleDbCommand
Dim oleExcelConnection    As OleDbConnection

ImportExcelSheetData = -1 " Error by default

If System.IO.File.Exists(ExcelFilePath) <> True Then
ErrMsg = "Error: File does not exist." + vbCrLf + "Filepath: " + ExcelFilePath
Exit Function
End If

If WithHeader = True Then
WithHeaderString = "Yes"
Else
WithHeaderString = "No"
End If

ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFilePath + ";Extended Properties=""Excel 12.0;HDR=" + WithHeaderString + ";IMEX=1"""

oleExcelConnection = New OleDbConnection(ConnectionString)
oleExcelConnection.Open()

If IsNothing(pDestDataTable) = True Then
pDestDataTable = New DataTable
End If


" if SourceExcelSheetName is not set, use first sheet!
If SourceExcelSheetName.Trim = "" Then
Dim tmpDataTable As DataTable = oleExcelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,  Nothing)

if IsNothing(tmpDataTable) OR tmpDataTable.Rows.Count < 1 Then
throw new Exception("Error: Could not determine the name of the first worksheet.")
End If

Dim firstSheetName As String = tmpDataTable.Rows(0)("TABLE_NAME").ToString()

If firstSheetName.Trim() <> "" then
SourceExcelSheetName = firstSheetName
End If
End If

If SourceExcelSheetName <> "" Then

Try
Dim oleAdapter As New OleDbDataAdapter()

oleExcelCommand = oleExcelConnection.CreateCommand()

If SourceExcelSheetName.EndsWith ("$") = True Then
oleExcelCommand.CommandText = "Select * From [" & SourceExcelSheetName & "]"
Else
oleExcelCommand.CommandText = "Select * From [" & SourceExcelSheetName & "$]"
End If

oleExcelCommand.CommandType = CommandType.Text
oleAdapter.SelectCommand = oleExcelCommand
oleAdapter.Fill(pDestDataTable)
oleExcelConnection.Close()

Catch ex As Exception
ErrMsg = Err.Description
Exit Function
End Try
End If

ImportExcelSheetData = 0  " Ok

Função final


Cardápio