Foxtable(狐表)用户栏目专家坐堂 → [求助]拆分列数据


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

主题:[求助]拆分列数据

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/14 23:24:00 [显示全部帖子]

数据有规律就好办

Dim Str As String = "100/50×30"
Dim arr() As String = str.Split(new Char(){"/","×"})
For Each a As String In arr
    Output.Show(a)
Next

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/15 8:39:00 [显示全部帖子]

4楼的数据就叫有规律,突然出现一个这类数据("100/50*30"、"100÷50×30")就叫没有规律

看懂代码,自己改改放到datacolchanged

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/15 11:19:00 [显示全部帖子]

If e.DataCol.Name = "第一列"
    If e.DataRow.IsNull(e.DataCol.Name) Then
        e.DataRow("第二列") = Nothing
        e.DataRow("第三列") = Nothing
        e.DataRow("第四列") = Nothing
    Else
        Dim Str As String = e.NewValue
        Dim arr() As String = str.Split(new Char(){"/","×"})
        e.DataRow("第二列") = arr(0)
        e.DataRow("第三列") = arr(1)
        e.DataRow("第四列") = arr(2)
    End If
End If

已经有的数据重置一下列

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/15 12:02:00 [显示全部帖子]

数据有问题,缺少除号或者乘号,或者这些符号不标准,如乘号“×、X、x”。

这就叫没有规律,总结一下数据,会有多少种不同的情况,如:
"100÷50×30"
"100/50X30"
"100/50"
"100×30"


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/15 14:12:00 [显示全部帖子]

If e.DataCol.Name = "第一列"
    e.DataRow("第二列") = Nothing
    e.DataRow("第三列") = Nothing
    e.DataRow("第四列") = Nothing
    If e.DataRow.IsNull(e.DataCol.Name) = False Then
        Dim Str As String = e.NewValue
        Dim arr() As String = str.Split(new Char(){"/","×"})
        e.DataRow("第二列") = arr(0)
        If arr.Length >= 3 Then
            e.DataRow("第三列") = arr(1)
            e.DataRow("第四列") = arr(2)
        Else
            If str.Contains("/") Then
                e.DataRow("第三列") = arr(1)
            ElseIf str.Contains("×") Then
                e.DataRow("第四列") = arr(1)
            End If
        End If
    End If
End If

 回到顶部