Å vite hvordan du lese Microsoft Excel rader fra Visual Basic.NET programmet kan gjøre programmet mer fleksibelt . I VB , kan du lage SQL strenger og spørring Excel regneark basert på kriterier for å unngå å lese hele arket . Dette oppnås gjennom bruk av et data -kortet og det datasett objektet. Du kan bruke LINQ å håndtere dataene som returneres og manipulere én rad om gangen i datasettet . Instruksjoner
en
Launch Microsoft Excel og skriv " navn" i celle " A1 ", " Age" i " B1 ", " John" in " A2 ", " 10 " in " B2 ", " Susan " i " A3 "," 15 " in" B3 "," Tom " i " A4 "," 10 " in" B4 "," Bob " in" A5 "og" 10 "in" B5 . " Lagre regnearket i "C : \\ " som " . ExcelFile.xlsx " Lukk Excel.
2
Launch Microsoft Visual Basic.NET og klikk " Nytt prosjekt " fra den venstre delen av skjermen for å starte " New Project" dialogvinduet. Klikk på "Windows Forms Application " og klikk " OK " for å starte et nytt prosjekt .
3
Dobbeltklikk på " Liste- " fra " Toolbox" -ruten for å legge til en ny liste kontrollen til skjemaet. Legg til en ny knapp med samme teknikk.
4
Dobbeltklikk skjemaet for å lage en form belastning hendelsen. Legg til følgende kode for å definere banen i Excel-regnearket du vil lese og lage objektet variablene du vil bruke for å lese filen : en
Dim connString As String = " Provider = Microsoft.ACE.OLEDB.12.0 ; datakilde = C: \\ ExcelFile.xlsx ; Utvidede Properties = Excel 12,0 ; "
Dim myConnection Som OleDbConnection = Nye OleDbConnection
Dim ds Som datasett
Dim da As OleDbDataAdapter
Dim strSQL As String
5
Definer SQL strengen til å spørre rader der "Age " er lik 10 , og lese Excel regneark ved hjelp av en data -adapter og et datasett.
strSQL = " SELECT navn, alder FROM [ Ark1 $] der alder = 10 "
myConnection.ConnectionString = connString
da = Ny OleDbDataAdapter ( strSQL , myConnection )
ds = Ny datasettet
da.Fill ( ds , " datatable ")
myConnection.Close ( )
6
Les dataene som returneres fra datasettet og lagre den i " ExcelRows " global array for fremtidig bruk .
Dim excelData = ds.Tables ( " datatable ") . AsEnumerable ( )
Dim rowQuery = fra p i excelData _
Select p ! NAVN, p ! AGE
rowCntReturned = rowQuery.Count
ExcelRows = rowQuery.ToArray
7
Legg følgende globale variabler over " Form1_Load " event:
Dim ExcelRows
Dim rowCntr As Integer
Dim rowCntReturned As Integer
8
Switch tilbake til skjemaet design og dobbeltklikk på knappen for å lage et klikk hendelsen. Legg til følgende kode for å legge en rad om gangen til listeboksen kontroll.
P Hvis ( rowCntr < rowCntReturned ) Så
Me.ListBox1.Items.Add ( ExcelRows ( rowCntr ) )
rowCntr + = 1
End If
9
Trykk " F5 " for å kjøre programmet og klikk " Button1 " for å legge den første raden i regnearket. Klikk på knappen igjen for å legge den andre raden og klikk på den en siste gang for å legge den tredje raden til listeboksen kontroll.