以文本方式查看主题

-  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=92275)

--  作者:tzzzj2008
--  发布时间:2016/10/31 8:17:00
--  导入excel的布尔列出错
导入按钮代码:
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叫停
以上长丝和短纤为布尔类型,无法导入合并到数据库,求解答,谢谢

--  作者:有点蓝
--  发布时间: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
--  发布时间: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

--  作者:狐狸爸爸
--  发布时间:2016/10/31 15:46:00
--  
上述的代码,不应该导入不了备注,你可以做个例子发上来测试看看。