aus Excel/CSV Zelle suchen und 2 weitere Zellen aus der Spalte ausgeben

  • VB.NET
  • .NET 4.5

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    aus Excel/CSV Zelle suchen und 2 weitere Zellen aus der Spalte ausgeben

    Neu

    Hallo,

    ich habe auf meiner Form 2x Label, 1x Textbox und 1x Button.
    In die Texbox gebe ich eine Zahl ein zBsp 5. Durch betätigen des Buttons, soll dann in der Tabellen-CSV-Datei (aus Excel exportiert) in der Spalte A nach der Zahl suchen (Bsp. 5) und dann in Label1 den Wert von Spalte B in der Zeile von der 5, sowie von Spalte C der Wert angegeben werden.

    Das suchen funktioniert auch schon ganz gut, aber ich bekomme es nur hin, die komplette Zeile auszulesen und zusätzlich werden dann alle leeren Spalten dahinter als ";" aufgeführt.

    Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. For Each zeile As String In IO.File.ReadAllLines("Tabelle.csv")
    3. If zeile.Contains(TextBox1.Text) Then
    4. Label1.Text = zeile
    5. 'Label2.Text = ????
    6. End If
    7. Next
    8. End Sub


    In diesem Beispiel steht in der Zeile, bei welcher die 5 ist : Spalte = 47,55 und Spalte C = 33,2.
    Als Ergebnis bekomme ich aktuell "47,55;33,2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"

    Wie bekomme ich das jetzt hin, dass im Label1 nur der Wert von Spalte B (47,55) und Label2 Spalte C (33,2) angezeigt wird?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „zauber777“ ()

    Neu

    verwende einen TextFieldParser.
    Der liest csv-Zeilen in ein String-Array, also aus jeder Zeile werden gleich mehrere Strings, nämlich je csv-Spalte einer.
    Ausserdem liest der TextFieldParser das csv-Format richtig. Es gibt bei csv nämlich einige Regeln, v.a. bezüglich escaping der Feld-Trenner-Zeichen.
    Das heist, dass Excel u.U. ein csv generiert, was ein "selbstgebastelter" csv-Parser fehlerhaft einliest.

    gugge Csv importieren
    Da findet ein Textfieldparser Verwendung.