以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  已解决 求助;导入表格时,里面包含日期列。每次导入都说日期列是字符串不能岛data。应当如何修改  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138693)

--  作者:zto001
--  发布时间:2019/8/3 13:20:00
--  已解决 求助;导入表格时,里面包含日期列。每次导入都说日期列是字符串不能岛data。应当如何修改

1求助;导入表格时,里面包含日期列。每次导入都说日期列是字符串不能岛data,然后就停止绘制表格变成空白,关掉重开又有数据在里面。应当如何修改
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim Book As New XLS.Book( txt.Value )
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("结算").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 = Tables("结算").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("结算").ResumeRedraw()
[此贴子已经被作者于2019/8/3 15:08:03编辑过]

--  作者:有点蓝
--  发布时间:2019/8/3 14:21:00
--  
For m As Integer = 0 To nms.Length - 1
    If nms(m) = "账单日期"
        Dim d As Date
        If Date.TryParse(Sheet(n,m).Value,d) Then r(nms(m)) = d
    Else
        r(nms(m)) = Sheet(n,m).Value
    End If
Next

--  作者:zto001
--  发布时间:2019/8/3 15:08:00
--  
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim Book As New XLS.Book( txt.Value )
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("结算").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 = Tables("结算").AddNew()
        For m As Integer = 0 To nms.Length - 1
            If nms(m) = "账单日期" Or nms(m) = "收件时间" Then
                Dim d As Date
                If Date.TryParse(Sheet(n,m).Value,d) Then r(nms(m)) = d
            Else
                r(nms(m)) = Sheet(n,m).Value
            End If
        Next
    End If
Next
Tables("结算").ResumeRedraw()