Foxtable(狐表)用户栏目专家坐堂 → 已解决 求助;导入表格时,里面包含日期列。每次导入都说日期列是字符串不能岛data。应当如何修改


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

主题:已解决 求助;导入表格时,里面包含日期列。每次导入都说日期列是字符串不能岛data。应当如何修改

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
已解决 求助;导入表格时,里面包含日期列。每次导入都说日期列是字符串不能岛data。应当如何修改  发帖心情 Post By:2019/8/3 13:20:00 [只看该作者]


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编辑过]

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


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By: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()

 回到顶部