以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教电子表格导入问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102303)

--  作者:HJG_HB950207
--  发布时间:2017/6/16 22:06:00
--  请教电子表格导入问题
电子表格S1 有如下多列:   姓名、文化程度、年龄、住址、出生日期、电话

现要用按钮导入该电子表格文件其中的三列 ,分别为:姓名、住址、年龄,  形成  “个人信息表“。

请教用按钮代码分步解决如下问题:
    
     1.首先判断该电子表格文件是否存在姓名、住址、年龄三列;

     2.如三列均存在,导入该三列,形成表名为“个人信息表”的表,如缺三列中的任何一列,指出“电子表格文件不符要求”。

谢谢老师!



--  作者:有点蓝
--  发布时间:2017/6/16 22:23:00
--  
参考:

Dim Book As New XLS.Book("F:\\H\\问题测试\\1111.xlsx")
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim nms() As String = {"姓名","住址","年龄"}

Dim s1 As new List(of String)
s1.AddRange(nms)
Dim dict As new Dictionary(of String,Integer)
For m As Integer = 0 To sheet.Cols.count -1
    If s1.Contains(sheet(0,m).value) Then
        dict.add(sheet(0,m).value,m)
    End If
Next
If dict.Count <> nms.Length Then
    msgbox("电子表格文件不符要求")
    Return
End If
Tables("表A").StopRedraw()
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,dict("姓名")).Text
    Dim dr As DataRow = DataTables("表A").Find("姓名 = \'" & bh & "\'")
    If dr Is Nothing Then \'如果不存在同编号的订单
        dr =  DataTables("表A").AddNew()
    End If
    For Each key As String In dict.Keys
        dr(key) = Sheet(n,dict(key)).Value
    Next
Next
Tables("表A").ResumeRedraw()

--  作者:HJG_HB950207
--  发布时间:2017/6/16 23:06:00
--  
谢谢老师!!!