Att veta hur man läser Microsoft Excel rader från Visual Basic.NET program kan göra din ansökan mer flexibel . I VB kan du skapa SQL- strängar och fråga Excel baserat på kriterier för att undvika att läsa hela arket . Detta sker genom användning av en dataadapter och datauppsättningen objektet. Du kan använda LINQ för att hantera de data som returneras och manipulera en rad i taget i datamängden . Instruktioner
1
Starta Microsoft Excel och typ " Name " i cell " 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 "och" 10 " i " B5 . " Spara kalkylbladet i " C : \\ " som " . ExcelFile.xlsx " Stäng Excel .
2
Launch Microsoft Visual Basic.NET och klicka på " Nytt projekt " från den vänstra rutan på skärmen för att starta " Nytt projekt " dialogrutan . Klicka på " Windows Forms Application " och klicka på " OK " för att starta ett nytt projekt .
3
Dubbelklicka på " listruta " från " Toolbox " rutan för att lägga till en ny kontroll listrutan till formuläret. Lägg till en ny knapp med samma teknik .
4
Dubbelklicka på formuläret för att skapa en händelse formulär belastning . Lägg till följande kod för att definiera sökvägen till Excel-ark som du vill läsa och skapa objekt variabler du använder för att läsa filen :
Dim connString As String = " Provider = Microsoft.ACE.OLEDB.12.0 , Data Source = C : \\ ExcelFile.xlsx ; Utökade Egenskaper = Excel 12,0 ; "
Dim MyConnection Som OleDbConnection = Nya OleDbConnection
Dim ds As DataSet
Dim da Som OleDbDataAdapter
Dim strSQL As String
5
Definiera SQL strängen att fråga rader där " Age " är lika med 10 och läsa Excel- kalkylblad med en data- adapter och en datamängd .
strSQL = " SELECT namn, ålder FROM [ Blad1 $ ] WHERE Age = 10 "
myConnection.ConnectionString = connString
da = Ny OleDbDataAdapter ( strSQL , MyConnection )
ds = New DataSet
da.Fill ( ds , " DataTable " ) katalog
myConnection.Close ( )
6
läsa data returneras från data in och lagra den i " ExcelRows " global array för framtida bruk .
Dim excelData = ds.Tables ( " DataTable " ) . AsEnumerable ( ) katalog
Dim rowQuery = From p i excelData _
Select p ! NAMN , s. ! AGE
rowCntReturned = rowQuery.Count
ExcelRows = rowQuery.ToArray
7
Lägg följande globala variabler ovanför " Form1_Load " händelse :
Dim ExcelRows
Dim rowCntr As Integer
Dim rowCntReturned As Integer
8
Switch tillbaka till den form design och dubbelklicka på knappen för att skapa en click-händelse . Lägg till följande kod för att lägga till en rad i taget i listrutan kontroll .
P Om ( rowCntr < rowCntReturned ) Sedan
Me.ListBox1.Items.Add ( ExcelRows ( rowCntr ) )
rowCntr + = 1
End If
9
Tryck " F5 " för att köra programmet och klicka på " Button1 " för att lägga till den första raden i kalkylbladet . Klicka på knappen igen för att lägga till den andra raden och klicka på den en sista gång för att lägga till den tredje raden i listrutan kontroll .