Foxtable(狐表)用户栏目专家坐堂 → [求助]将word文档内容提取到当前表的不同单元格


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

主题:[求助]将word文档内容提取到当前表的不同单元格

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


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]将word文档内容提取到当前表的不同单元格  发帖心情 Post By:2016/9/29 22:55:00 [只看该作者]

给word文档做上简单标记,按标记把word内容提取到当前表。具体如下:
A:之后的文字串,放入当前行的“第一列”;
B:之后的文字串,放入当前行的“第二列”;
C:之后的文字串,放入当前行的“第三列”;
D:之后的文字串,放入当前行的“第四列”;
END结束。

如图:

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

附件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹.rar




[此贴子已经被作者于2016/9/30 7:38:57编辑过]

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


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/30 9:09:00 [只看该作者]

Dim app As New MSWord.Application
Dim s As String = StrToWide(" ")
try
    Dim c As String = "第一列"
    Dim doc = app.Documents.Open("F:\H\问题测试\新建文件夹\文档.docx")
    Dim dr As Row = Tables("表A").AddNew
    For Each k As object In doc.Paragraphs
        If Len(Trim(k.Range.text)) > 1 Then
            Select Case k.Range.text.TrimStart(" ",s).SubString(0,2)
                Case "B:"
                    c = "第二列"
                Case "C:"
                    c = "第三列"
                Case "D:"
                    c = "第四列"
            End Select
            dr(c) &= k.Range.text & vbcrlf
        End If
    Next
    
    dr("第一列") = dr("第一列").TrimEnd(vbcr,vblf)
    dr("第二列") = dr("第二列").TrimEnd(vbcr,vblf)
    dr("第三列") = dr("第三列").TrimEnd(vbcr,vblf)
    dr("第四列") = dr("第四列").TrimEnd(vbcr,vblf)
    app.quit
catch ex As exception
    msgbox(ex.message)
    app.quit
End try

[此贴子已经被作者于2016/9/30 9:12:25编辑过]

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


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/30 13:14:00 [只看该作者]

已经很好了,还有点小问题:

1、我把指定文件代码换成文件打开器选择打开,代码写不全,请帮忙一下。

2、假如我在窗体放入一个按钮和一个WebBrowser打开word文档,做好标记后,点击按钮导入该文件。代码怎么改?

3、Case "B:"这句    能不能写成Case "B:" or "GG"  这种双条件选择的形式(意思是满足一种条件就可以)?

谢谢版主!

--------------------
Dim app As New MSWord.Application
Dim s As String = StrToWide(" ")
try
    Dim c As String = "第一列"
    'Dim doc = app.Documents.Open(ProjectPath&"\文档.docx")
  
    Dim dlg As New OpenFileDialog 
    dlg.Filter= "Word文件|*.docx" 
    If dlg.ShowDialog = DialogResult.Ok Then
    Dim doc = app.Documents.Open(dlg) 
        
        
        Dim dr As Row = CurrentTable.AddNew
        For Each k As object In doc.Paragraphs
            If Len(Trim(k.Range.text)) > 1 Then
                Select Case k.Range.text.TrimStart(" ",s).SubString(0,2)
                    Case "B:"
                        c = "第二列"
                    Case "C:"
                        c = "第三列"
                    Case "D:"
                        c = "第四列"
                End Select
                dr(c) &= k.Range.text & vbcrlf
            End If
        Next
        
        dr("第一列") = dr("第一列").TrimEnd(vbcr,vblf)
        dr("第二列") = dr("第二列").TrimEnd(vbcr,vblf)
        dr("第三列") = dr("第三列").TrimEnd(vbcr,vblf)
        dr("第四列") = dr("第四列").TrimEnd(vbcr,vblf)
        app.quit
    catch ex As exception
        msgbox(ex.message)
        app.quit
    End try

[此贴子已经被作者于2016/9/30 13:18:08编辑过]

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


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/30 14:27:00 [只看该作者]

帮助请看完整,半路抄代码也要理解代码的使用


Dim doc = app.Documents.Open(dlg.FileName

如果都是存储到第二列,可以这样,否则不行
Case "B:","GG"

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


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/30 15:38:00 [只看该作者]

谢谢版主!正在学习,只是学的慢点。请包涵!另外:

假如导入当前打开的word文档,“ Dim doc = app.Documents.Open(ProjectPath&"\文档.docx")” 这句代码怎么改动?

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


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/30 16:11:00 [只看该作者]

当前打开的不就是? Dim doc = app.Documents.Open(dlg.FileName)

Dim doc = app.Documents.Open(ProjectPath&"\文档.docx")指当前项目目录下的文档

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


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/30 16:45:00 [只看该作者]

我是这个意思:
在窗体放入一个按钮和一个WebBrowser;把word文档在WebBrowser中打开,做好标记后,点击按钮导入该文件。

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


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/30 17:02:00 [只看该作者]

不行,WebBrowser中打开已经占用了这个文件,没有办法在其他地方再操作

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


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/30 17:14:00 [只看该作者]

参考下这个


改了下

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:webbrowser控制word_测试.table



 回到顶部