Announcement

Collapse
No announcement yet.

Daten aus Excel in Datagrid importieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten aus Excel in Datagrid importieren

    Hallo,

    Soll:
    ich muss für einen Datenbank ein Frontend basteln welches Daten aus Excel importiert. Meine Idee war diese erstmal in eine Datagrid zu nehmen um Sie dort vom Anwender nochmal prüfen zu lassen und dann auf den SQL zu übergeben.

    Problem:
    Es gibt einzelne Spalten die im Datagrid offensichtlich als numeric gespeichert werden welche aber Text sein müßen.

    Code
    Code:
        Sub import_geht()
            Dim sFilePath, sFileName As String
            Dim sSlash As Single
            With OpenFileDialog1
                .Title = "Importieren"
                .InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
                .Filter = "Exceltabellen (*.xls)|*.xls"
                .ShowDialog(Me)
                sFilePath = Mid(.FileName, 1, sSlash)
                sFileName = Mid(.FileName, sSlash + 1, Len(.FileName))
            End With
    
            Dim strConnection As System.Data.OleDb.OleDbConnection = Nothing
            Dim myPath As String = sFilePath & sFileName
    
            Try
                Dim objDataSet As System.Data.DataSet
                Dim objAdapter As System.Data.OleDb.OleDbDataAdapter
                strConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & myPath & " '; " & "Extended Properties=Excel 8.0;")
                objAdapter = New System.Data.OleDb.OleDbDataAdapter("select * from [Stammdaten$]", strConnection)
                objDataSet = New System.Data.DataSet
    
                objAdapter.Fill(objDataSet)
                DataGridView1.DataSource = objDataSet.Tables(0).DefaultView
    
                strConnection.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                strConnection.Close()
            End Try
    End Sub
    Das Datagrid ist also leer und wird mit den Spalten der Exceldatei gefüllt.
    Wie immer bei den einfachen Lösungen funktioniert es nur zu 3% nicht...

    Es gibt, als Beispiel, eine Spalte "HsNr" die offensichtlich Hausnummern enthält.
    zu 99% sind das Zahlen aber es gibt auch Werte wie "8 c" diese werden hierbei nicht imporiert und lassen sich aufgrund der formatierung der Datagridspalte nicht nachtragen.

    wie behebe ich das Problem?
    Ich hab keine Ahnung was ich tue aber ich will es lernen

  • #2
    Beim zugriff über die JET-Engine/Access sind diese probleme an der Tagesordnung.

    Bei weiten weniger Probleme bekommt man wenn man Excel als Automatisierungsserver verwendet und direkt die Daten einliest.

    Comment


    • #3
      Automatisierungsserver?
      Verstehe ich das richtig das ich also die Exceldatei öffnen und mir stück für stück die Daten da abholen soll?

      kann man nicht irgendwie den Code oben etwas erweitern mit nem Parameter für die Spalten oder so?
      Ich hab keine Ahnung was ich tue aber ich will es lernen

      Comment


      • #4
        Beispiel für Automatisierung wäre z.B. http://www.dotnetperls.com/excel-vbnet

        Comment

        Working...
        X