Datagridview speichern und lesen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Marsianer.

    Datagridview speichern und lesen

    Hallo Miteinander.


    Ich lade Speichere das Datagridview mit diesem Code in ein Excel file:

    VB.NET-Quellcode

    1. If System.IO.File.Exists("Pfad") Then
    2. Kill("pfad")
    3. End If
    4. Dim xls_Appl As Excel.Application ' Excel Anwendung
    5. Dim xls_Mappe As Excel.Workbook ' Excel Arbeitsmappe
    6. Dim xls_Blatt As Excel.Worksheet ' Excel Blatt (Tabelle)
    7. Dim Anzahlzeilen As Integer
    8. xls_Appl = New Excel.Application() ' Excel Instanz bilden
    9. xls_Appl.Visible = False
    10. xls_Mappe = xls_Appl.Workbooks.Add()
    11. xls_Blatt = xls_Mappe.ActiveSheet
    12. With bestellen.DataGridView1
    13. For Spalte As Integer = 0 To .Columns.Count - 1
    14. xls_Blatt.Cells(1, Spalte + 1).Value = .Columns(Spalte).HeaderText
    15. xls_Blatt.Cells(1, Spalte + 1).Font.Bold = True
    16. Next
    17. Anzahlzeilen = .Rows.Count
    18. If .AllowUserToAddRows = True Then
    19. Anzahlzeilen = Anzahlzeilen - 1 ' Leerzeile abziehen
    20. End If
    21. For Zeile As Integer = 0 To Anzahlzeilen - 1
    22. For Spalte As Integer = 0 To .Columns.Count - 1
    23. xls_Blatt.Cells(Zeile + 2, Spalte + 1).Value() _
    24. = .Rows(Zeile).Cells(Spalte).Value()
    25. Next
    26. Next
    27. End With
    28. Dim Datum As Date = Date.Now.Date
    29. xls_Appl.DisplayAlerts = False 'vor dem Speichern - vermeidet eventuelle Dialoge
    30. xls_Mappe.SaveAs("pfad")
    31. xls_Appl.Quit()
    32. Close()


    Und mit diesem Code lese ich es wieder ein:


    VB.NET-Quellcode

    1. Try
    2. Dim MyConnection As System.Data.OleDb.OleDbConnection
    3. Dim DtSet As System.Data.DataSet
    4. Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
    5. MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & TextBox1.Text & "';Extended Properties=Excel 8.0;")
    6. MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Tabelle1]", MyConnection)
    7. MyCommand.TableMappings.Add("Table", "Net-informations.com")
    8. DtSet = New System.Data.DataSet
    9. MyCommand.Fill(DtSet)
    10. DataGridView2.DataSource = DtSet.Tables(0)
    11. MyConnection.Close()
    12. Catch
    13. End Try



    Jedoch Funktioniert das einlesen nicht wirklich, da er einen Fehler ausgiebt:

    OleDbException wurde nicht behandelt.

    "Die externe Tabelle hat nicht das erwartete Format."

    Zeile: MyCommand.Fill(DtSet)

    Kann mir jemand helfen?
    Ich kenn mich mit Office-Automation nicht aus. Weils mich interessiert hat, habe ich aber mal gestöbert und die folgendenden Links gefunden:
    Diskussion
    Snippet
    Ich kann nicht versprechen, ob es dir hilft, aber schau mal nach.

    Habe nochwas gefunden. Könnte eine Kommunikationsstörung zwischen Excel 2007 (ist das deine Version?) und der JET-Engine sein.
    Hier

    LG
    Marsianer
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D