Foxtable(狐表)用户栏目专家坐堂 → [求助]提取word文档字符串


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

主题:[求助]提取word文档字符串

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]提取word文档字符串  发帖心情 Post By:2018/3/1 16:07:00 [只看该作者]

文件列  [裁判文书] 添加文件时,能否自动提取word文档内  标志性文字后的字符串?

1、将“判决”或“裁定”两个字符提取到  [裁判类型];

2、将“判决如下:”或“裁定如下:”后面的内容提取到   [裁判内容];

见下图: 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:提取文档内容.rar

 


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

*************************************

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

*************************************


图片点击可在新窗口打开查看此主题相关图片如下:image 3.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/3/1 16:12:37编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/1 16:40:00 [只看该作者]

Dim dlg As new OpenFileDialog
dlg.Filter = "word|*.doc;*.docx"
If dlg.ShowDialog = DialogResult.OK Then
    Dim app As New MSWord.Application
    try
        Dim doc = app.Documents.Open(dlg.fileName)
        Dim count = Doc.Characters.Count
        Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count)
        msgbox(rng.Text)
        Dim str As String = rng.text
        Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=裁定如下).*?(?=审  判  长)")
        If mc.count >= 1 Then
            msgbox("裁定")
            For i As Integer = 0 To mc.count-1
                msgbox(mc(i).value)
            Next
        Else
            mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=判决如下).*?(?=审  判  长)")
            If mc.count >= 0 Then
                msgbox("判决")
                For i As Integer = 0 To mc.count-1
                    msgbox(mc(i).value)
                Next
            Else
                msgbox("无法识别")
            End If
        End If
        app.Quit
    catch ex As exception
        msgbox(ex.message)
        app.Quit
    End try
End If

 


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/3/1 17:44:00 [只看该作者]

谢谢甜老师!

能不能只出现一次文件打开窗口,因为在添加列文件时已经选过一次文件了,在事件里又要重选一次文件。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/1 18:27:00 [只看该作者]

肯定可以,看红色代码,想办法弄到路径。

 

    Dim app As New MSWord.Application
    try
        Dim doc = app.Documents.Open("d:\test.doc")
        Dim count = Doc.Characters.Count
        Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count)
        msgbox(rng.Text)
        Dim str As String = rng.text
        Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=裁定如下).*?(?=审  判  长)")
        If mc.count >= 1 Then
            msgbox("裁定")
            For i As Integer = 0 To mc.count-1
                msgbox(mc(i).value)
            Next
        Else
            mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=判决如下).*?(?=审  判  长)")
            If mc.count >= 0 Then
                msgbox("判决")
                For i As Integer = 0 To mc.count-1
                    msgbox(mc(i).value)
                Next
            Else
                msgbox("无法识别")
            End If
        End If
        app.Quit
    catch ex As exception
        msgbox(ex.message)
        app.Quit
    End try


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/3/1 18:45:00 [只看该作者]

路径改为:

Dim doc = app.Documents.Open(ProjectPath & "裁判文书\" & e.DataRow("承办人") & "\" & e.DataRow("案号") & ".doc" )

 

感觉没有错,但是弹出,未找到文件。

我的存放文件路径代码是:

DataTables("数据表").DataCols("裁判文书").DefaultFolder = ProjectPath & "裁判文书\" & e.DataRow("承办人") & "\"

 

列属性的存放地址没有设置,是空的,添加文件后变成“C:\Users\Administrator\Desktop\提取文档内容\裁判文书\AAA\

怎么改?

[此贴子已经被作者于2018/3/1 18:53:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/1 20:15:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:提取文档内容.table


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/3/1 20:50:00 [只看该作者]

还是提示:

 


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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/1 22:13:00 [只看该作者]

修改代码

 

Dim dr As DataRow = e.DataRow
Dim file = e.SourceFolder & "\" & e.filename
If dr.IsNull("案号") Or dr.IsNull("承办人")  Then
    MessageBox.Show("案号及承办人不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    e.FileName = dr("案号") & ".doc"
End If

Select Case e.DataCol.Name
    Case "裁判文书"
        e.Subfolder = e.DataRow("承办人")  '将此文件存放在目录名为承办人名称的子目录中.
        Dim app As New MSWord.Application
        try
            Dim doc = app.Documents.Open(file)
            Dim count = Doc.Characters.Count
            Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count)
            msgbox(rng.Text)
            Dim str As String = rng.text
            Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=裁定如下).*?(?=审  判  长)")
            If mc.count >= 1 Then
                msgbox("裁定")
                For i As Integer = 0 To mc.count-1
                    msgbox(mc(i).value)
                Next
            Else
                mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=判决如下).*?(?=审  判  长)")
                If mc.count >= 0 Then
                    msgbox("判决")
                    For i As Integer = 0 To mc.count-1
                        msgbox(mc(i).value)
                    Next
                Else
                    msgbox("无法识别")
                End If
            End If
            app.Quit
        catch ex As exception
            msgbox(ex.message)
            app.Quit
        End try
End Select

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/3/1 23:08:00 [只看该作者]

请教老师一个问题,上面的代码哪一句是把添加的文件放入“裁判文书”里的,一直没看出来。

这句:Dim file = e.SourceFolder & "\" & e.filename,是来源目录吗?起什么作用?

 

要是局域网路径怎么改?

[此贴子已经被作者于2018/3/1 23:09:03编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/2 1:13:00 [只看该作者]

以下是引用天一生水在2018/3/1 23:08:00的发言:

请教老师一个问题,上面的代码哪一句是把添加的文件放入“裁判文书”里的,一直没看出来。

这句:Dim file = e.SourceFolder & "\" & e.filename,是来源目录吗?起什么作用?

 

要是局域网路径怎么改?

[此贴子已经被作者于2018/3/1 23:09:03编辑过]

 

关键看afterOpenProject事件的代码,设置 DefaultFolder
 
然后看这句代码 e.Subfolder = e.DataRow("承办人") 

 

局域网路径的话,只需要修改DefaultFolder的路径即可


 回到顶部
总数 34 1 2 3 4 下一页