Я новичок в VB.Net, и я научился получать данные из Excel до DataGridView
. Теперь может кто-нибудь помочь мне узнать, как получить данные Excel в текстовые поля?Как искать значение текстового поля в листе Excel и возвращать данные в другие текстовые поля
У меня есть форма с 6 текстовыми полями и кнопкой поиска. Когда я ввожу значение в textbox1
и нажмите на кнопку поиска, я хочу, чтобы найти файл Excel, который выбирается с помощью OpenFileDialog
и сохраненную в destination1
строке
destination1 = destipath & Filename.Text & "_" & dtedate.ToShortDateString & ".xlsx" '& Format(TimeOfDay, "h.mm.ss tt")
sheet1 Excel имеет ID, имя, отец, Мать, адрес и телефон. Форма VB.Net имеет 6 текстовых полей. Когда я ввожу, например, идентификатор 30 в текстовое поле 1, код должен искать ID 30 в столбце A. Если найдено, то текстовые поля 2-6 должны отображать имя, отец, мать, адрес, телефон.
Строки листа являются динамическими, но столбцы фиксированы. Я написал код, чтобы сделать это в Excel VBA, но я затрудняюсь написать код, чтобы сделать это в VB.Net?
Я пробовал это в VB.Net, но не идентифицировал LookIn
и LookAt
, как в Excel.
Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
Dim xlappFile As Excel.Application = Nothing
Dim xlFile_WB As Excel.Workbook = Nothing
Dim xlFile_WS As Excel.Worksheet = Nothing
Dim xlFirstfile_WS1 As Excel.Worksheet = Nothing
Dim FoundRange As Excel.Range
Dim searchID As String
searchID = Textbox1.Text
xlFile_WB = xlappFile.Workbooks(destination1) ' destination1 is selected by 'user
MessageBox.Show(destination1)
xlFile_WS = xlappFile.Worksheets(1)
FoundRange = xlFile_WS.Cells.Find(What:=searchID, LookIn:=Excel.XlFindLookIn.xlFormulas, LookAt:=Excel.XlLookAt.xlWhole)
If FoundRange Is Nothing Then
textbox2.Text = "not found"
textbox3.Text = "not found"
textbox4.Text = "not found"
textbox5.Text = "not found"
textbox6.Text = "not found"
Else
textbox2.Text = FoundRange.Offset(0, 2).Value
textbox3.Text = FoundRange.Offset(0, 3).Value
textbox4.Text = FoundRange.Offset(0, 4).Value
textbox5.Text = FoundRange.Offset(0, 5).Value
textbox6.Text = FoundRange.Offset(0, 6).Value
End If
End Sub
и результат был? –
Результат в excel: он извлекает значения в столбцах b, c, d, e, f и отображается в текстовом поле2, текстовое поле3, текстовое поле4, текстовое поле 5, текстовое поле 6. Если текстовое поле 1 не найдено, все текс-боксы будут отображаться не найдены. Этот код был написан в excel, но я хочу узнать, как его реализовать в vb.net. – user3094480
Я заменил код excel для реализации в VB.Net – user3094480