提问人:pball 提问时间:11/17/2023 更新时间:11/17/2023 访问量:30
VB.net 查找 excel 数据范围并将其读取到列表中
VB.net Find and read range of excel data to a list
问:
我希望将 Excel 文件中的一系列数据读取到列表中,以便进一步处理它。Excel 文件将是一个标准模板,但我想容纳或多或少的行/列,而不是对要读取的范围进行硬编码。从下图中,我希望阅读 A4 到 U23。我已经开始寻找带有“用户 1”和“相关危险”的单元格,目的是使用它们来获取我想要读取的单元格范围。似乎应该有一种更有效的方法来做到这一点。
我下面的代码返回 $A 美元 3 美元和 $U 美元,这是一个不错的开始,但仍然有很多工作要做。我很欣赏更好的方法的例子。
Dim OpenDialog As New OpenFileDialog
OpenDialog.Filter = "Excel Files (*.xlsx)|*.xlsx"
OpenDialog.Title = "Open Template File"
If (OpenDialog.ShowDialog() <> Windows.Forms.DialogResult.OK) Then Exit Sub
Dim objXLApp As New Excel.Application
objXLApp.Workbooks.Open(OpenDialog.FileName)
Dim objXLWs As Excel.Worksheet = objXLApp.Workbooks(1).Worksheets("Sheet1")
Dim objRange As Excel.Range
objRange = objXLWs.UsedRange
Dim FirstTableStart As String
Dim FirstTableEnd As String
FirstTableStart = objRange.Find("User 1").Address
With objXLWs.Range(objRange.Find("Associated Hazards").Address).MergeArea
FirstTableEnd = .Cells(.Rows.Count, .Columns.Count).address
End With
MsgBox(FirstTableStart & vbNewLine & FirstTableEnd)
objXLApp.Quit()
单元格“用户 1”和“相关危险”的值不会更改,但行/列可能会更改,并且表格将始终将最后一列充满“#”到需要读取的底行。此表的右侧和下方将有其他数据。
答: 暂无答案
评论