raocarlos600
3/6/2018 - 11:45 AM

Excel to DataTable

Excel a dataTable. Tener en cuenta el nombre de la hoja excel (Sheet0). Si da error de que no encuentra Microsoft.Jet... poner la cpu del compilar a x86

'carpetas donde estan los excels y nombre de los excels
            Dim carpetaCreado As String = "Excel creado importado"
            Dim CarpetaOdin As String = "Excel exportado desde odin"
            Dim carpetaExcel As String = ConfigurationManager.AppSettings("carpetaExcel").ToString()
            Dim diCreado As New DirectoryInfo(carpetaExcel + "\" + carpetaCreado + "\")
            Dim diOdin As New DirectoryInfo(carpetaExcel + "\" + CarpetaOdin + "\")

            Dim fiArr As FileInfo() = diCreado.GetFiles()
            Dim fiArrOdin As FileInfo() = diOdin.GetFiles()
            Dim friCreado As FileInfo
            Dim friOdin As FileInfo
            friCreado = fiArr(0)
            friOdin = fiArrOdin(0)
'excel odin
            Dim connectionStringOdin As String
            If friOdin.Extension = ".xls" Then
                connectionStringOdin = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                 "Extended Properties='Excel 8.0;HDR=Yes';" & _
                 "Data Source=" & diOdin.ToString() + friOdin.Name.ToString()
            Else
                connectionStringOdin = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                 "Extended Properties='Excel 12.0;HDR=Yes';" & _
                 "Data Source=" & diOdin.ToString() + friOdin.Name.ToString()
            End If

            Dim cnn As New OleDbConnection(connectionStringOdin)
            sql = "SELECT * FROM [Sheet0$]"

            Dim da As New OleDbDataAdapter(sql, cnn)

            Dim dtOdin As New DataTable()

            da.Fill(dtOdin)

            DataGridView1.DataSource = dtOdin