Foxtable(狐表)用户栏目专家坐堂 → 导入excel的布尔列出错


  共有1688人关注过本帖树形打印复制链接

主题:导入excel的布尔列出错

帅哥哟,离线,有人找我吗?
tzzzj2008
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:2 积分:165 威望:0 精华:0 注册:2016/10/1 19:48:00
导入excel的布尔列出错  发帖心情 Post By:2016/10/31 8:17:00 [只看该作者]

导入按钮代码:
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls*" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book(dlg.FileName) '指定数据文件
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    CurrentTable.StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"订单号","订单日期","评审日期","压力","口径","成品长度","内外单双","经线规格","订单数量","未派单数","备注"}   
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题  
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,0).Text
        If DataTables("订单表").Find("订单号 = '" & bh & "'") Is Nothing Then '如果不存在同编号的订单
            Dim r As Row = CurrentTable.AddNew()
            For m As Integer = 0 To nms.Length - 1
                r(nms(m)) = Sheet(n,m).Value
            Next
        End If
    Next
    CurrentTable.ResumeRedraw()
End If
附excel文件:
订单号订单日期评审日期压力口径成品长度内外单双长丝短纤经线规格订单数量未派单数总长度备注
5B382016-09-30148930TRUETRUE8S*4200106000UL叫停
以上长丝和短纤为布尔类型,无法导入合并到数据库,求解答,谢谢

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106287 积分:540564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/31 10:26:00 [只看该作者]

For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
    If DataTables("订单表").Find("订单号 = '" & bh & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As Row = CurrentTable.AddNew()
        For m As Integer = 0 To nms.Length - 1
            If nms(m) = "长丝" OrElse nms(m) = "短纤"
                r(nms(m)) = IIF(Sheet(n,m).Value = 1,True,False)
            Else
                r(nms(m)) = Sheet(n,m).Value
            End If
        Next
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
tzzzj2008
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:2 积分:165 威望:0 精华:0 注册:2016/10/1 19:48:00
  发帖心情 Post By:2016/10/31 13:04:00 [只看该作者]

谢谢版主:导入逻辑列已解决。
新的问题,无法导入备注列。请帮忙解决!
附代码:
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls*" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book(dlg.FileName) '指定数据文件
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    CurrentTable.StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"订单号","订单日期","评审日期","压力","口径","成品长度","内外单双","长丝","短纤","经线规格","订单数量","未派单数","备注"}
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,0).Text
        If DataTables("订单表").Find("订单号 = '" & bh & "'") Is Nothing Then '如果不存在同编号的订单
            Dim r As Row = CurrentTable.AddNew()
            For m As Integer = 0 To nms.Length - 1
                If nms(m) = "长丝" OrElse nms(m) = "短纤"
                    r(nms(m)) = IIF(Sheet(n,m).Value = 1,True,False)
                Else
                    r(nms(m)) = Sheet(n,m).Value
                End If
            Next
        End If
    Next
    CurrentTable.ResumeRedraw()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/31 15:46:00 [只看该作者]

上述的代码,不应该导入不了备注,你可以做个例子发上来测试看看。

 回到顶部