以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导入数据报错求助!!!!!!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66290)

--  作者:lisheng7177
--  发布时间:2015/4/2 17:59:00
--  导入数据报错求助!!!!!!

导入按钮代码如下:

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog =DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
   
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("实操潜能表").ResumeRedraw()
    Tables("实操潜能表").StopRedraw()
    Dim nms() As String = {"工作单位","县公司","姓名","性别","身份证号码","文化程度","鉴定等级","申报鉴定工种","鉴定批次","申报性质","理论成绩","实潜资格","考评分组","考核项目","考点","实操考核时间","实操考核地点","实操序号","实操成绩","潜能答辩时间","潜能序号","潜能成绩","实潜准考证号码","备注","照片"}
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim sfzhm As String = sheet(n,4).Text
        Dim dr As DataRow = DataTables("实操潜能表").Find("身份证号码 = \'" & sfzhm & "\'")
        If dr Is Nothing Then \'如果不存在同编号的订单
            dr =  DataTables("实操潜能表").AddNew()
        End If
        For m As Integer = 0 To nms.Length - 1
            If DataTables("实操潜能表").DataCols(nms(m)).IsBoolean Then
                If Sheet(n,m).Value = 0 Then
                    dr(nms(m)) = False
                Else
                    dr(nms(m)) = True
                End If
            Else If DataTables("实操潜能表").DataCols(nms(m)).Expression > "" Then
                \'表达式列
            Else
                dr(nms(m)) = Sheet(n,m).Value
            End If
        Next
    Next
    Tables("实操潜能表").ResumeRedraw()
End If

 

导入报错如下:


图片点击可在新窗口打开查看此主题相关图片如下:_rfz5vl1y8~kavhcyke19x.png
图片点击可在新窗口打开查看

导入的表格如下:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实操潜能表.xls

为什么会报错?而且有些能导入,有些不能导入?求版主指教!!!!!!
--  作者:有点甜
--  发布时间:2015/4/2 18:03:00
--  

 foxtable表格上传上来。

 

 


--  作者:有点甜
--  发布时间:2015/4/2 18:05:00
--  

 提示,说明你的excel表格有错误。

 

For m As Integer = 0 To nms.Length - 1
    If DataTables("实操潜能表").DataCols(nms(m)).IsBoolean Then
        If Sheet(n,m).Value = 0 Then
            dr(nms(m)) = False
        Else
            dr(nms(m)) = True
        End If
    Else If DataTables("实操潜能表").DataCols(nms(m)).IsNumeric Then
        dr(nms(m)) = val(Sheet(n,m).Value

    Else If DataTables("实操潜能表").DataCols(nms(m)).Expression > "" Then
        \'表达式列
    Else
        dr(nms(m)) = Sheet(n,m).Value
    End If
Next


--  作者:lisheng7177
--  发布时间:2015/4/2 18:14:00
--  
谢甜版!表格中的单元格格式我用的是文本格式!
--  作者:lisheng7177
--  发布时间:2015/4/2 18:18:00
--  
现在就是奇怪,同一表格中有的行能导入,有的不能,还报错!按理表格有错的话,那应该都不能导入才对?
--  作者:lisheng7177
--  发布时间:2015/4/2 18:57:00
--  

代码还是报错!搞不定了,求指教!


--  作者:有点甜
--  发布时间:2015/4/2 19:28:00
--  
 看3楼,不行请上传例子啊。
--  作者:lisheng7177
--  发布时间:2015/4/2 20:45:00
--  
我就是把3楼的红色代码加上才会报错的,不加不报错,就是导入EXCEL表时报错,项目很大,压缩不下来
--  作者:有点甜
--  发布时间:2015/4/2 20:52:00
--  

 汗

 

Else If DataTables("实操潜能表").DataCols(nms(m)).IsNumeric Then
        dr(nms(m)) = val(Sheet(n,m).Value)


--  作者:lisheng7177
--  发布时间:2015/4/2 20:58:00
--  
现在加的代码就不报错了,也能全部导入了,谢谢甜版!代码我是看不太懂的,能说明一下是为什么吗?