以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]单元格多行文本处理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138366)

--  作者:天一生水
--  发布时间:2019/7/29 20:09:00
--  [求助]单元格多行文本处理
将左侧单元格多行内容,转换为右侧的效果,就是去掉红框内的文字。
1、如果“委托代理人”不在句首,去掉“委托代理人”前面的字;
2、如果“委托代理人”在句首,去掉括号及其内的字。


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看


\'\'\'
If e.DataCol.name = "原告" Then
    Dim lst As List (of String) = e.DataRow.Lines("原告")
    For Each ls As String In lst
        If ls.Contains("委托代理人") And ls.StartsWith("委托代理人") = False Then    \'包含“委托代理人”,但不在句首
            Dim i1 = ls.indexOf("委托代理人")     \'出现的位置
            ls = ls.Remove(0, i1+1)               \'去掉前面的字            
            ......            
        ElseIf ls.StartsWith("委托代理人") = True And ls.Contains("(") And ls.Contains(")") Then     \'句首包含“委托代理人”,并且包含括号
            Dim i1 = ls.indexOf("(")       \'括号开始位置
            Dim i2 = ls.indexOf(")")       \'括号结束位置
            ls = ls.Remove(i1, i2-i1+1)  \'清除括号内容            
            ......            
        End If
    Next
End If
[此贴子已经被作者于2019/7/29 20:45:08编辑过]

--  作者:有点蓝
--  发布时间:2019/7/29 21:17:00
--  
\'\'\'
If e.DataCol.name = "原告" Then
    Dim lst As List (of String) = e.DataRow.Lines("原告")
    Dim lst1 As new List (of String)
    For Each ls As String In lst
        If ls.Contains("委托代理人") And ls.StartsWith("委托代理人") = False Then    \'包含“委托代理人”,但不在句首
            Dim i1 = ls.indexOf("委托代理人")     \'出现的位置
            ls = ls.Remove(0, i1+1)               \'去掉前面的字            
            ......            
        ElseIf ls.StartsWith("委托代理人") = True And ls.Contains("(") And ls.Contains(")") Then     \'句首包含“委托代理人”,并且包含括号
            Dim i1 = ls.indexOf("(")       \'括号开始位置
            Dim i2 = ls.indexOf(")")       \'括号结束位置
            ls = ls.Remove(i1, i2-i1+1)  \'清除括号内容            
            ......            
        End If
        lst1.add(ls)
    Next
e.DataRow.Lines("原告") = lst1
End If