Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους.

 

Ας υποθέσουμε λοιπόν ότι έχουμε ένα excel αρχείο (info.xlsx) με δεδομένα:

ID | Status

1 | A

2 | B

3 | C

4 | D

5 | E

 

Θα θέλαμε να φτιάξουμε ένα πρόγραμμα το οποίο να διαβάζει τα δεδομένα από τη στήλη ID, να τα εμφανίζει σε ένα combobox και στη συνέχεια, ανάλογα την επιλογή του χειριστή, να γεμίζει ένα textbox (Textbox1) με τα δεδομένα από τη στήλη Status.

Δηλαδή, αν επιλεχθεί το ID 2 από το Combobox, να εμφανιστεί το "B" στο textbox.

 

Μπορεί να βοηθήσει κάποιος;

 

Ο κώδικας για τη πρώτη λειτουργία του combobox έχει συνταχθεί κάπως έτσι:

 

>
Dim i As Integer
Dim strText As String
Dim oExcel As Application = CreateObject("Excel.Application")
Dim oBook As Workbook = oExcel.Workbooks.Open("C:\info.xlsx")
Dim oSheet As Worksheet
oSheet = oBook.Worksheets(1)
i = 2 'είναι 2 ώστε να μην καταγράψει και το όνομα της στήλης, στη περίπτωση μας το "ID"
strText = oSheet.Cells(i, 1).Value
Do While strText <> Nothing
ComboBox1.Items.Add(strText)
i = i + 1
strText = oSheet.Cells(i, 1).value
Loop

oBook.Close()
oExcel.Quit()

 

Ευπρόσδεκτες οι παρατηρήσεις/τροποποιήσεις σας!

 

Θα μπορούσε το ίδιο να δουλέψει και με datagridview αντί του textbox;

 

Γιώργος

Δημοσ.

το προγραμμα παρακάτω κάνει αυτό που θες

>
Imports Microsoft.Office.Interop
Public Class Form1
   Dim values = New Dictionary(Of String, String)

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim workbook = New Excel.Application().Workbooks.Open("c:\tmp\Book1.xlsx")
    Dim range1 = workbook.Sheets(1).Range("A2:B6")
   
    For i = 1 To range1.Rows.Count
	    Dim item = New ComboItem(range1.Cells(i, 1).Value, range1.cells(i, 2).Value)
	    ComboBox1.Items.Add(item)
    Next i
    workbook.Close()
   End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    TextBox1.Text = ComboBox1.SelectedItem.val2
   End Sub

Class ComboItem
    Public val1 As String
    Public val2 As String
    Public Sub New(v1 As String, v2 As String)
	    val1 = v1
	    val2 = v2
    End Sub
    Public Overrides Function ToString() As String
	    Return "..." & val1
    End Function
   End Class
End Class

 

Λόγικά, αν και δεν εχω χρόνο να το ψαξω, η παραλια με περιμενει, το excel-οφυλο μπορει να χρησιμοποιηθει σαν ole datasource, οποτε ναι, μπορει να δουλεψει με datagridview

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...