de173 Δημοσ. 12 Αυγούστου 2012 Δημοσ. 12 Αυγούστου 2012 Καλησπέρα σε όλους. Ας υποθέσουμε λοιπόν ότι έχουμε ένα 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; Γιώργος
georgemarios Δημοσ. 12 Αυγούστου 2012 Δημοσ. 12 Αυγούστου 2012 το προγραμμα παρακάτω κάνει αυτό που θες > 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
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα