Foxtable(狐表)用户栏目专家坐堂 → [求助]想删除单元格内空行,却改变了单元格字符串长度


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

主题:[求助]想删除单元格内空行,却改变了单元格字符串长度

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/6 16:32:00 [显示全部帖子]

Dim lst As new List(of String)
For Each t As Table In Tables
    For Each r As Row In t.rows
        For Each c As Col In t.cols
            lst.Clear
            Dim lines = r.DataRow.Lines(c.Name)
            If lines.Count > 1 Then
                For Each s As String In  lines
                    If s.trim > "" Then
                        lst.Add(s)
                    End If
                Next
                r(c.name) = String.Join(vbcrlf,lst.ToArray)
            End If
        Next
    Next
Next

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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/6 20:52:00 [显示全部帖子]

测试没有这种问题,做个例子看看

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


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

Dim lst As new List(of String)
For Each t As Table In Tables
    For Each r As Row In t.rows
        For Each c As Col In t.cols
            lst.Clear
            Dim lines = r.DataRow.Lines(c.Name)
            If lines.Count > 1 Then
                For Each s As String In  lines
                    If s.trim > "" Then
                        lst.Add(s)
                    End If
                Next
                r(c.name) = String.Join(vbcrlf,lst.ToArray)
            Else
                r(c.name) = r(c.name).TrimEnd(chr(10),chr(13))
            End If
        Next
    Next
Next


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


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

试试

Dim lst As new List(of String)
For Each t As Table In Tables
    For Each r As Row In t.rows
        For Each c As Col In t.cols
            If c.IsString Then
                lst.Clear
                Dim lines = r.DataRow.Lines(c.Name)
                If lines.Count > 1 Then
                    For Each s As String In  lines
                        If s.trim > "" Then
                            lst.Add(s)
                        End If
                    Next
                    r(c.name) = String.Join(vbcrlf,lst.ToArray)
                Else
                    r(c.name) = r(c.name).TrimEnd(chr(10),chr(13))
                End If
            End If
        Next
    Next
Next

或者上传例子

 回到顶部