Zellen in VB anzeigen

  • VB.NET

Es gibt 56 Antworten in diesem Thema. Der letzte Beitrag () ist von Marc T..

    Zellen in VB anzeigen

    Guten Morgen liebe Forumsmitglieder,

    Ich habe folgendes Problem:
    Für meine Projektarbeit will ich eine Art Checkliste mit VB Express erstellen. Gewertet wird bei dieser Projektarbeit lediglich die Dokumentation zu dem Thema, nicht das Projekt an sich.
    Ich bin absoluter Neuling in VB, aber leichte Programmierkenntnisse in Basic besitz ich trotzdem.
    Ich möchte, dass sich mit der Exe ein Fenster öffnet, in dem sich eine Listbox befindet, in dem alle Excel Dateien angezeigt werden, die sich im gleichem Ordner mit der Exe befinden. Dann soll man eine Excel Datei anklicken können, und auf einen Button namens anzeigen drücken. Dann öffnet sich ein neues Fenster indem der Zelleninhalt von A1 angezeigt wird.

    Wenn ich dies als Starthilfe bekommen könnte, könnte ich mich da rein denken und mich an den Rest selber wagen. Für Hilfe wäre ich sehr dankbar!!!
    Danke und Gruß,
    Marc

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Um den Pfad der .exe zu ermitteln lohnt es sich StartupPath-Eigenschaft anzuschauen.

    => msdn.microsoft.com/de-de/libra…tartuppath(v=vs.110).aspx

    Um dann alle Dateien in diesem Verzeichnis auszulesen kann die FileInfo- Klasse verwendet werden. (Hier kann auf die Endung der Datei (xls, xlsx usw.) gefiltert werden -> Sodass nur Excel Dateien angezeigt werden)

    => msdn.microsoft.com/de-de/libra…o.fileinfo(v=vs.110).aspx


    Mit den jetzt erhaltenen FileInfos kann eine List Box aufgebaut werden -> hier gilt es zu überlegen den extra Button evtl. weg zu lassen und einfach per Doppelklick auf den Eintrag weiter zu machen...

    Danach kann die Excel Datei über die >>microsoft.office.interop.excel.dll<< ein bzw. aus-gelesen werden -> hierzu gibt es relativ viele gute Artikel
    Naja

    Marc T. schrieb:

    code Technisch evtl ne Starthilfe geben
    ist immer so eine Sache :D

    Ein mehr oder weniger gutes Snippet um das auslesen der Excel Zelle zu realisieren wäre das hier:
    dotnet-snippets.de/snippet/exc…e-auslesen-mit-vb-net/865

    Evtl. wäre es auch hilfreich wenn du den Code den du bisher schon hast posten könntest.
    Es würde das helfen einfacher machen da man sieht wie der aktuelle Stand ist ...
    Hallo Marc,
    damit Du Dich auf die Dokumentation konzentrieren kannst, gibts heute ausnahmsweise fertige Kost ^^ .
    Anbei auch das Programm zu Testen inkl. 3 Excel-Files.
    Gutes gelingen, viel Spaß!

    Ach so, für dieses Beispiel braucht man kein Microsoft Excel installiert zu haben, es wird die DLL aus dem EPPLUS-Projekt verwendet!

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.IO
    3. Imports OfficeOpenXml
    4. Public Class FormMain
    5. Private Sub FormMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    6. GetFiles()
    7. End Sub
    8. Private Sub ButtonRefresh_Click(sender As Object, e As EventArgs) Handles ButtonRefresh.Click
    9. ListBoxExcelFiles.Items.Clear()
    10. GetFiles()
    11. End Sub
    12. Private Sub GetFiles()
    13. ListBoxExcelFiles.Items.AddRange(Directory.GetFiles(System.AppDomain.CurrentDomain.BaseDirectory, "*.xl*"))
    14. End Sub
    15. Private Sub ButtonView_Click(sender As Object, e As EventArgs) Handles ButtonView.Click
    16. If ListBoxExcelFiles.SelectedIndex > 0 Then
    17. Dim existingFile = New FileInfo(ListBoxExcelFiles.SelectedItem.ToString())
    18. Try
    19. Using package = New ExcelPackage(existingFile)
    20. Dim workBook As ExcelWorkbook = package.Workbook
    21. If workBook IsNot Nothing Then
    22. If workBook.Worksheets.Count > 0 Then
    23. Dim currentWorksheet As ExcelWorksheet = workBook.Worksheets.First()
    24. Dim col1 As Object = currentWorksheet.Cells(1, 1).Value
    25. MessageBox.Show(col1.ToString())
    26. End If
    27. End If
    28. End Using
    29. Catch ex As Exception
    30. MessageBox.Show(ex.Message)
    31. End Try
    32. Else
    33. MessageBox.Show("Sie haben nichts ausgewählt..")
    34. End If
    35. End Sub
    36. End Class



    Nachtrag: Ach Scheize - ich sehe gerade, Dein Projekt soll gar nicht in VB.NET sein? ;(
    Dateien
    • ExcelA1.zip

      (428,65 kB, 148 mal heruntergeladen, zuletzt: )

    simpelSoft schrieb:

    Nachtrag: Ach Scheize - ich sehe gerade, Dein Projekt soll gar nicht in VB.NET sein?
    Doch ich denke das passt schon ->

    Marc T. schrieb:

    Art Checkliste mit VB Express erstellen



    simpelSoft schrieb:

    damit Du Dich auf die Dokumentation konzentrieren kannst, gibts heute ausnahmsweise fertige Kost .

    Damit ist der Lerneffekt gerade enorm gesunken :/
    So, heute Abend hatte ich mal ein wenig Zeit mich da rein zu lesen.
    Das sieht schon mal sehr gut aus!
    Leider habe ich Probleme mit dem erstellen der Forms Anwendung.
    Später will ich den Inhalt von mehreren Zellen anzeigen lassen, aber das will ich selbst probieren.
    Nun zu meinen Fehlern:

    Quellcode

    1. Fehler 9 Der Typ "ExcelPackage" ist nicht definiert.


    Ich habe gelesen, dass das daran liegt, dass bestimmte Verweise fehlen.
    Wo bekomme ich die her? Hat die nur der Ersteller oder sind das allgemeine Dateien die als Referenz dienen?

    Die restlichen Fehler bekomme ich eventuell auch selber behoben.

    Jetzt noch allgemeine Fragen:
    Wie kann ich aus dem Code herauslesen, wie du die Listbox und die Buttons benannt hast?
    Wie funktioniert das mit dem zweitem Fenster? Ist das der Teil im Code mit der "MessageBox"?

    Tut mir leid das ich euch solche Anfänger Fragen stellen muss, aber ich bin absoluter Neuling mit VB und brauche es auch nicht so häufig.

    Ich danke euch mal wieder im Voraus, echt ein super Forum!!

    P.S.: Ab heute habe ich mehr Zeit und werde mich täglich da ran setzen ;)

    Marc T. schrieb:

    Ich habe gelesen, dass das daran liegt, dass bestimmte Verweise fehlen.
    Wo bekomme ich die her?

    Das ist der Verweis auf die EPPlus.dll
    Die habe ich in dem Testprojekt mitgeliefert. Hast Du denn das Projekt aus Posting #5 heruntergeladen und compiliert?
    Dort ist die DLL dabei und der Verweis auch.

    Marc T. schrieb:

    Wie kann ich aus dem Code herauslesen, wie du die Listbox und die Buttons benannt hast?

    Auch dies geht aus dem downloadbaren Projektfile genau hervor und es steht auch im Quellcode des Postings.
    ButtonRefresh ButtonView ListBoxExcelFiles

    Marc T. schrieb:

    Wie funktioniert das mit dem zweitem Fenster? Ist das der Teil im Code mit der "MessageBox"?

    Richtig. Das zweite "Fenster" ist eine MessageBox ^^
    Guten Abend,

    Nach einem mehreren Stunden langen Kampf habe ich nun alle Errors weg :)
    Zusätzlich funktioniert die Exe sogar 8-)
    Jetzt versuche ich die Messagebox zu entfernen, und eine weiter Form hinzu zu fügen, da ich später mehrere Zellen
    anzeigen lassen will. Die eine Zelle galt nur als Starthilfe.
    Da ich morgen früh raus muss, muss ich das morgen machen. Gibt es irgend welche Tipps die ich beachten sollte?
    Ihr müsst mir ja nicht die ganze Lösung geben, aber so ein Ansatz wäre ganz hilfreich :)

    Danke und Gute Nacht!

    Marc T. schrieb:

    Jetzt versuche ich die Messagebox zu entfernen, und eine weiter Form hinzu zu fügen, da ich später mehrere Zellen
    anzeigen lassen will. Die eine Zelle galt nur als Starthilfe.

    -> Hier sollte dann das ganze "currentWorksheet " als Objekt an die neue Form übergeben werden (z.B Parameter im Konstruktor)
    -> Anschließend können dann in der zweiten Form die jeweilig gewünschten Spalten ausgelesen und angezeigt werden, evtl in einer DataGridView ? oder ebenfalls einer ListView je nachdem was mit den Werten gemacht werden soll ...

    simpelSoft schrieb:

    Wozu die zweite Form?

    -> Dennoch berechtigte Frage kann die Anzeige der Zellen vlt. nicht auch in der Hauptansicht erfolgen ?
    Quasi auf der linken Seite der Form die gewünschte ListView mit den Excel-Dateien und auf der rechten Seite die Inhalte der Excel Zellen, wenn eine Datei ausgewählt wurde
    Guten Morgen,

    also so eine zweite Form wäre schon ganz schön. Ich will die wie eine Din A 4 Seite aussehen lassen, mit Überschrift und mehreren Zelleninhalten die alle beschriftet werden. Ist das zu kompliziert eine zweite ein zu binden? Wenn ich alles über eine Form mache geht das zwar, aber das wäre dann nicht so wie ich mir das vorgestellt habe :/
    Danke schon mal und Grüße ;)
    Prinzipiell ist es kein Problem eine zweite Form einzubauen

    -> Neue Form anlegen die als Konstruktor-Parameter ein ExcelWorksheet akzeptiert und anschließend die Form wie folgend aufrufen (statt der MessageBox (Z. 26 u. 27 von simpelSoft's Code))

    VB.NET-Quellcode

    1. Dim form2 as New Form2(currentWorksheet ) 'Form 2 instanziieren
    2. form2.showDialog()

    -> Im FormLoad Event von "Form2" können dann alle Zellen die benötigt werden ausgelesen werden

    VB.NET-Quellcode

    1. label1.text = currentWorksheet.Cells(1, 1).Value ' Werte an der Oberfläche anzeigen
    2. label2.text = currentWorksheet.Cells(1, 2).Value ' Werte an der Oberfläche anzeigen
    3. 'usw ...

    (Die Form kann über Rechtsklick -> Hinzufügen zum Projekt hinzugefügt werden )

    So müsste das ganze dann ungefähr aussehen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private _CurrentWorksheet As ExcelWorksheet = Nothing
    3. Public Sub New(currentWorksheet As ExcelWorksheet)
    4. _CurrentWorksheet = currentWorksheet
    5. End Sub
    6. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. label1.text = Me._CurrentWorksheet.Cells(1, 1).Value ' Werte an der Oberfläche anzeigen
    8. label2.text = Me._CurrentWorksheet.Cells(1, 2).Value ' Werte an der Oberfläche anzeigen
    9. 'usw
    10. End Sub
    11. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MrNobody“ ()