Wissen, wie man Microsoft Excel Zeilen aus Visual Basic.NET Anwendung lesen können Sie Ihre Anwendung flexibler. In VB , können Sie SQL-Zeichenfolgen und Abfrage Excel-Tabellen basierend auf Kriterien , um zu vermeiden das Lesen der gesamten Blatt . Dies wird durch die Verwendung eines Daten -Adapter und Daten gestellte Aufgabe gelöst. Sie können LINQ um die zurückgegebenen Daten zu verwalten und zu manipulieren eine Zeile zu einem Zeitpunkt, in dem Datensatz . Anleitung
1
Starten Sie Microsoft Excel , und geben Sie "Name" in Zelle "A1 ", " Alter " in " B1 ", " John " in " A2 ", " 10 " in " B2 ", " Susan "in" A3 "," 15 "in" B3 "," Tom "in" A4 "," 10 "in" B4 "," Bob "in" A5 "und" 10 "in" B5 ". Speichern Sie die Tabelle in "C: \\ " as " . ExcelFile.xlsx " Schließen Sie Excel.
2
Starten Sie Microsoft Visual Basic.NET und klicken Sie auf "Neues Projekt" aus dem linken Bereich des Bildschirms , um die " New Project" Dialog zu starten. Klicken Sie auf " Windows Forms Application" und klicken Sie auf " OK", um ein neues Projekt zu starten.
3
Doppelklicken Sie auf " ListBox " aus der " Toolbox " Fenster, um ein neues Listenfeld hinzufügen die Form. Fügen Sie eine neue Schaltfläche mit der gleichen Technik .
4
Doppelklicken Sie auf das Formular, um eine Form Load-Ereignis erstellen. Fügen Sie den folgenden Code, um den Pfad der Excel Tabelle, die Sie lesen möchten, und erstellen Sie die Objekt -Variablen Sie verwenden, um die Datei zu lesen definieren :
Dim connString As String = "Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source = C: \\ ExcelFile.xlsx ; Extended Properties = Excel 12.0 ; "
Dim myConnection Wie OleDbConnection = New OleDbConnection
Dim ds As DataSet Dim da
Wie OleDbDataAdapter
Dim strSQL As String
5
Definieren Sie die SQL-String zur Abfrage von Zeilen, in denen " Alter " ist gleich 10 und lesen Sie die Excel-Tabelle mit einer Daten -Adapter und einen Datensatz .
strSQL = "SELECT NAME, AGE FROM [ Tabelle1 $] WHERE Alter = 10 "
myConnection.ConnectionString = connString
da = New OleDbDataAdapter ( strSQL , myConnection )
ds = New DataSet
da.Fill ( ds , " dataTable " )
myConnection.Close ()
6
Lesen Sie die Daten zurückgegeben aus dem Datensatz und speichern Sie es in den " ExcelRows " globales Array für die zukünftige Verwendung .
Dim Exceldata = ds.Tables ( " dataTable " ) . AsEnumerable () Dim
rowQuery = von p In Exceldata _
Select p! NAME, p! AGE
rowCntReturned = rowQuery.Count
ExcelRows = rowQuery.ToArray
7
hinzufügen die folgenden globalen Variablen über dem " Form1_Load " event:
Dim ExcelRows
Dim rowCntr As Integer Dim
rowCntReturned As Integer
8
Schalter zurück zum Formular -Design und doppelklicken Sie auf die Taste, um ein Click-Ereignis zu erstellen. Fügen Sie den folgenden Code, um eine Zeile zu einem Zeitpunkt, zu dem Listenfeld hinzuzufügen.
( RowCntr < rowCntReturned ) Dann
Me.ListBox1.Items.Add ( ExcelRows ( rowCntr ) )
rowCntr + = 1
End If
9
Presse "F5 ", um das Programm zu starten und klicken Sie auf " Button1 " , um die erste Zeile der Tabelle hinzuzufügen. Klicken Sie auf die Taste erneut, um die zweite Zeile hinzufügen und klicken Sie ein letztes Mal auf die dritte Zeile in das Listenfeld -Steuerelement hinzuzufügen .