Vide, hvordan man læse Microsoft Excel rækker fra din Visual Basic.NET program kan gøre din ansøgning mere fleksibel. I VB, kan du oprette SQL- strenge og forespørgsel Excel regneark baseret på kriterier for at undgå at læse hele arket . Dette opnås ved anvendelse af en database adapter og datasættet objektet . Du kan bruge LINQ til at håndtere de data, der returneres og manipulere én række ad gangen i datasættet. Instruktioner
1
Launch Microsoft Excel og skriv " Name" i celle "A1 ", " Age " i " B1 ", " John " i " A2 ", " 10 " i " B2 ", " Susan "i" A3 "," 15 "i" B3 "," Tom "i" A4 "," 10 "i" B4 "," Bob "i" A5 "og" 10 "i" B5 ". Gem regnearket i "C: \\ " som " . ExcelFile.xlsx " Luk Excel.
2
Launch Microsoft Visual Basic.NET og klik på " Nyt projekt " fra venstre rude på skærmen for at starte " Nyt projekt " dialogvindue . Klik på "Windows Forms Application " og klik på "OK " for at starte et nyt projekt.
3
Dobbeltklik på " ListBox " fra " Toolbox" ruden for at tilføje en ny liste kontrollen til formularen. Tilføj en ny knap ved hjælp af samme teknik.
4
Dobbeltklik på formularen for at oprette en form belastning begivenhed. Føj følgende kode til at definere stien til den Excel-regneark , du ønsker at læse og skabe de objektvariabler du vil bruge til at læse filen : Hej
Dim connString As String = " Provider = Microsoft.ACE.OLEDB.12.0 ; datakilde = C: \\ ExcelFile.xlsx ; Udvidede Properties = Excel 12,0 , "
Dim MinForbindelse Som OleDbConnection = Nye OleDbConnection
Dim ds As DataSet
Dim da Som OleDbDataAdapter
Dim strSQL As String
5
Definer SQL strengen til query rækker, hvor "Age " er lig med 10 og læs Excel-regneark ved hjælp af en data -adapter og et datasæt.
strSQL = " SELECT navn, alder FROM [ Ark1 $] WHERE Age = 10 "
myConnection.ConnectionString = connString
da = Ny OleDbDataAdapter ( strSQL , MinForbindelse ) < br >
ds = Ny DataSet
da.Fill ( ds , " DataTable " )
myConnection.Close ()
6
Læs data returneret fra datasættet og gemme det i " ExcelRows " global matrix til fremtidig brug.
Dim ExcelData = ds.Tables ( " DataTable "). AsEnumerable ()
Dim rowQuery = From p i ExcelData _
Select p! NAVN , p! AGE
rowCntReturned = rowQuery.Count
ExcelRows = rowQuery.ToArray
7
Tilføj følgende globale variable over " Form1_Load " begivenhed :
Dim ExcelRows
Dim rowCntr As Integer
Dim rowCntReturned As Integer
8
Switch tilbage til formen design og dobbeltklik på knappen for at oprette et klik begivenhed. Føj følgende kode til at tilføje én række ad gangen til listen kontrol.
P Hvis ( rowCntr < rowCntReturned ) Så
Me.ListBox1.Items.Add ( ExcelRows ( rowCntr ) )
rowCntr + = 1
End If
9
Tryk på " F5 " for at køre programmet, og klik på " Button1 " for at tilføje den første række i regnearket . Klik på knappen igen for at tilføje den anden række , og klik på det en sidste gang for at tilføje den tredje række til listen kontrol.