以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]将word文档内容提取到当前表的不同单元格 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91127) |
-- 作者:jyh7081 -- 发布时间:2016/9/29 22:55:00 -- [求助]将word文档内容提取到当前表的不同单元格 给word文档做上简单标记,按标记把word内容提取到当前表。具体如下: A:之后的文字串,放入当前行的“第一列”; B:之后的文字串,放入当前行的“第二列”; C:之后的文字串,放入当前行的“第三列”; D:之后的文字串,放入当前行的“第四列”; END结束。 如图: 附件:
[此贴子已经被作者于2016/9/30 7:38:57编辑过]
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/9/30 14:27:00 -- 帮助请看完整,半路抄代码也要理解代码的使用 Dim doc = app.Documents.Open(dlg.FileName) 如果都是存储到第二列,可以这样,否则不行 Case "B:","GG"
|
-- 作者:jyh7081 -- 发布时间:2016/9/30 15:38:00 -- 谢谢版主!正在学习,只是学的慢点。请包涵!另外: |
-- 作者:有点蓝 -- 发布时间:2016/9/30 16:11:00 -- 当前打开的不就是? Dim doc = app.Documents.Open(dlg.FileName) Dim doc = app.Documents.Open(ProjectPath&"\\文档.docx")指当前项目目录下的文档
|
-- 作者:jyh7081 -- 发布时间:2016/9/30 16:45:00 -- 我是这个意思: 在窗体放入一个按钮和一个WebBrowser;把word文档在WebBrowser中打开,做好标记后,点击按钮导入该文件。
|
-- 作者:有点蓝 -- 发布时间:2016/9/30 17:02:00 -- 不行,WebBrowser中打开已经占用了这个文件,没有办法在其他地方再操作 |
-- 作者:有点蓝 -- 发布时间:2016/9/30 17:14:00 -- 参考下这个 改了下 |