Excel Worksheet aktivieren ???

  • VB.NET
  • .NET 4.5

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Dksksm.

    Excel Worksheet aktivieren ???

    Hallo zusammen,
    ich habe eine Form mit dem ich dann Excel Daten auslesen will.
    Darin sind unter anderem zwei Komboboxen, die durch die Excel-Datei gefüllt werden.
    Die Komboboxen dienen dazu später die richtigen Sheets auszuwählen und genau da hänge ich. Ich bekomme meine Sheets nicht ausgewählt.

    Wie muss ich weiterarbeiten das ich den Inhalt der Sheets auslesen kann?


    Das ist mein aktuell Code:

    VB.NET-Quellcode

    1. Imports Microsoft.Office.Interop
    2. Public Class frmImport
    3. Dim _DataFile As New FileInfo("Daten.xml")
    4. Dim xlsApp As New Excel.Application
    5. Dim wb As Excel._Workbook
    6. Private Sub frmImport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. 'Daten einlesen
    8. Me.DsDaten.ReadXml(_DataFile.FullName)
    9. End Sub
    10. Private Sub btn_ExcelDoeffnen_Click(sender As Object, e As EventArgs) Handles btn_ExcelDoeffnen.Click
    11. 'Deklarationen
    12. Dim ReadedSheets As Excel.Worksheet
    13. If ofdExcelDatei.ShowDialog() = DialogResult.OK Then
    14. wb = xlsApp.Workbooks.Open(ofdExcelDatei.FileName)
    15. xlsApp.Visible = False
    16. 'Labels und Zonen anzeigen Button aktivieren
    17. lblKostentbl.Visible = True
    18. lblZonentbl.Visible = True
    19. cboKosten.Enabled = True
    20. cboZone.Enabled = True
    21. cboKosten.Visible = True
    22. cboZone.Visible = True
    23. btnImport.Enabled = True
    24. cboZone.Items.Clear()
    25. cboKosten.Items.Clear()
    26. For Each ReadedSheets In wb.Worksheets
    27. cboZone.Items.Add(ReadedSheets.Name)
    28. cboKosten.Items.Add(ReadedSheets.Name)
    29. Next
    30. End If
    31. End Sub
    32. Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
    33. Dim dtaSystemdate As Date = System.DateTime.Now
    34. Dim strDatafilewExt As String = Path.GetFileNameWithoutExtension(_DataFile.Name)
    35. Dim strbckFilename As String = strDatafilewExt & "_" & dtaSystemdate.Year & dtaSystemdate.Month & dtaSystemdate.Day & "_" & dtaSystemdate.Hour & dtaSystemdate.Minute & ".bck"
    36. Dim strDataPath As String = Path.GetDirectoryName(_DataFile.FullName)
    37. Dim strSelectedZone As String = Convert.ToString(cboZone.SelectedItem)
    38. Dim strselectedKosten As String = Convert.ToString(cboKosten.SelectedItem)
    39. '_DataFile.CopyTo(strDataPath & "\" & strbckFilename)
    40. Dim xlssheets As Object
    41. xlssheets = wb.Worksheets(strSelectedZone) '<-- Ob das Sinn macht ist schon mal die Frage,
    42. 'HIER CODE
    43. 'HIER CODE
    44. 'UND NOCH MEHR CODE
    45. End Sub
    46. End Class


    Ab der Stelle Hier CODE, habe ich das Problem das kein xlssheets.Select(1) funktioniert, er bittet mir nur die Optionen im Intellisens mit Equals,Tostring,etc.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „TimH“ ()

    Das ist richtig. In Zeile#51 steht's ja auch: As Object. Da weiß IntelliSense nicht weiter. Warum deklarierst Du xlssheets nicht wie in Z#14 als Excel.Worksheet? Damit kann dann IntelliSense wieder was machen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Jau, das ist etwas nervig beim Umgang mit Excel und Co. Da musst Du dauernd casten, um vom blöden Object wegzukommen. Zu beheben mit xlssheets = Directcast(wb.Worksheets(strSelectedZone),Excel.Worksheet)
    Du kannst auch Epplus (AFAIK ein Office-to-.Net-Wrapper) verwenden. Soll einfacher sein, hab ich aber selbst noch nicht in Benutzung.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    VaporiZed schrieb:


    Du kannst auch Epplus (AFAIK ein Office-to-.Net-Wrapper) verwenden.


    EEPlus ist kein Wrapper, der Vorteil in der Benutzung von EEPlus ist vor allem, dass Excel hier gar nicht verwendet wird, sondern OpenXML gelesen bzw. gescgrieben wird.
    Wenn Du einen Wrapper suchst, dann wäre NetOffice so ein Werkzeug.

    Für mich geht an EEPlus heute nichts mehr vorbei wenn ich etwas mit Excel machen muss.