以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [原创]初学者问下Excel导入代码优化  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=114741)

--  作者:hrlong
--  发布时间:2018/2/19 23:14:00
--  [原创]初学者问下Excel导入代码优化
以下代码的excel文件是在固定位置的,
请问各位老师
怎么把代码优化成
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
类似这样的 打开电脑任意位置的excel文件的模式呢


------------------------------------------------------------------------------
Dim Book As New XLS.Book("c:\\test\\订单.xls")

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
Dim nms1() As String = {"产品","客户","雇员"}
Dim nms2() As String = {"表列名产品","表列名客户","表列名雇员"}

For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As Row = Tables("订单").AddNew()
    For i As Integer = 0 To sheet.Cols.Count -1
        Dim idx As Integer = array.indexof(nms1, sheet(0,i).Text)
        If idx >= 0 Then
            r(nms2(idx)) = sheet(n, i).Text
        End If
    Next
Next
Tables("订单").ResumeRedraw()
--  作者:有点甜
--  发布时间:2018/2/21 18:00:00
--  
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("订单").StopRedraw()
    Dim nms1() As String = {"产品","客户","雇员"}
    Dim nms2() As String = {"表列名产品","表列名客户","表列名雇员"}
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As Row = Tables("订单").AddNew()
        For i As Integer = 0 To sheet.Cols.Count -1
            Dim idx As Integer = array.indexof(nms1, sheet(0,i).Text)
            If idx >= 0 Then
                r(nms2(idx)) = sheet(n, i).Text
            End If
        Next
    Next
    Tables("订单").ResumeRedraw()
End If