Foxtable(狐表)用户栏目专家坐堂 → 关于WORD内容提取


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

主题:关于WORD内容提取

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


加好友 发短信
等级:幼狐 帖子:167 积分:1624 威望:0 精华:0 注册:2018/3/12 9:22:00
关于WORD内容提取  发帖心情 Post By:2018/8/9 17:58:00 [只看该作者]

咨询个设计思路问题:    如果原始数据是WORD文件(固定格式的表格,内容以文字为主),能否实现将内容拆分到FT里,内容通过FT流转并保存。  若有需要再生成流转后的WORD文件(重新生成应该就是做个WORD报表,问题不大)。    如果能的话,WORD内容如果根据需要读取出来。


如图,收到文件后,把表格里的信息自动转到FT的某个功能里。  然后内容流转, 相关人员填写 处理回复内容。   如果有需要, 完整的信息,含处理回复内容重新生成WORD文件。  否则就是在FT里面查看这些数据。  原始的WORD文件删除都没影响
图片点击可在新窗口打开查看此主题相关图片如下:testword拆解.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/8/9 18:06:36编辑过]

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


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

读取word数据,参考

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\test.doc"
    Dim doc = app.Documents.Open(fileName)
    Dim t = doc.Tables(1)
    Dim text = t.Cell(1, 2).Range.Text.ToString()
    msgbox(text)

    Doc.Close
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try

[此贴子已经被作者于2018/8/9 18:28:43编辑过]

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


加好友 发短信
等级:幼狐 帖子:167 积分:1624 威望:0 精华:0 注册:2018/3/12 9:22:00
  发帖心情 Post By:2018/8/10 16:50:00 [只看该作者]

OK.   拆解理论上能实现了。  谢谢。

不过发现2个问题
1、程序运行后,对话框弹出时间长短不一。  基本要等上20秒左右才弹出。  难得点了就弹出。  这是什么问题? 
2、获取的内容有黑点,不知道是我电脑问题还是什么。  如下图

图片点击可在新窗口打开查看此主题相关图片如下:testword拆解2.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/8/10 16:50:11编辑过]

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


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

做个例子上来测试。

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


加好友 发短信
等级:幼狐 帖子:167 积分:1624 威望:0 精华:0 注册:2018/3/12 9:22:00
  发帖心情 Post By:2018/8/10 17:40:00 [只看该作者]

问题1已解决。 文件自身问题。        
问题2依旧存在。
新增问题3 , 非表格内的数据获取是什么代码 。  如下图
 
 
问题2的代码如下
 

Dim app As New MSWord.Application
try
    Dim fileName = "c:\test.doc"
    Dim doc = app.Documents.Open(fileName)
    Dim t = doc.Tables(1)
    'Dim text = t.Cell(5, 2).Range.Text.ToString()
    'msgbox(text)
    e.Form.Controls("TextBox1").Value = t.Cell(2, 2).Range.Text
    e.Form.Controls("TextBox2").Value = t.Cell(3, 2).Range.Text
    e.Form.Controls("TextBox3").Value = t.Cell(7, 2).Range.Text

Dim t2 = doc.Tables(2)
 e.Form.Controls("TextBox4").Value = t2.Cell(3, 2).Range.Text

     
   Doc.Close
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try



此主题相关图片如下:word.jpg
按此在新窗口浏览图片

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.table

 

WORD文件上传失败

[此贴子已经被作者于2018/8/10 17:43:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/10 20:22:00 [只看该作者]

Dim app As New MSWord.Application
try
    Dim doc = app.Documents.Open("d:\test.doc")
    For Each k As object In doc.Paragraphs
        msgbox(k.Range.text)
    Next
    app.quit
catch ex As exception
    msgbox(ex.message)
    app.quit
End try

 回到顶部