Foxtable(狐表)用户栏目专家坐堂 → 求帮助写段从Word读取数据的代码。


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

主题:求帮助写段从Word读取数据的代码。

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/8 20:11:00 [只看该作者]

问题一:

 

1、

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54396&replyID=360697&skin=1

 

2、如果1无法修复,就重新安装一下wps。

 

 

问题二:上传实例


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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2016/8/8 21:41:00 [只看该作者]

谢谢大红袍!
第一个问题,装了WPS就解决了。

第二个问题,对比了情况,发现和照片的版式设置有关。
  当设置为”嵌入型“时,可以正常识别;当设置为”浮于文字上方“时不能识别。
  可现有表格中的图片,可能多数都是”浮于文字上方“的,请教如何解决?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/8 23:01:00 [只看该作者]

分开处理

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\test.doc"
    Dim doc = app.Documents.Open(fileName)
   
    For Each shape As object In doc.InlineShapes
        If shape.Type = MSWord.WdInlineShapeType.wdInlineShapePicture
           
            Dim img As Byte() = shape.Range.EnhMetaFileBits
            Dim bmp As new Bitmap(new IO.MemoryStream(img))
            'bmp.Save("d:\test.jpg")
            msgbox(1)
        End If
    Next
    For Each shape As object In doc.Shapes

msgbox(shape.Type)
        If shape.Type = 13   
            Dim img As Byte() = shape.Range.EnhMetaFileBits
            Dim bmp As new Bitmap(new IO.MemoryStream(img))
            'bmp.Save("d:\test.jpg")
            msgbox(2)
        End If
    Next
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try

 

[此贴子已经被作者于2016/8/8 23:01:38编辑过]

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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2016/8/9 7:31:00 [只看该作者]

这么晚了大红袍老师还在帮我们解决问题,真的是太感动了,万分感谢!

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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2016/8/9 9:33:00 [只看该作者]


测试了上述代码,表格见附件


在执行第二段时:

 For Each shape As object In doc.Shapes

...

 Next


循环两次,shape.type类型分别提示为17、13,均无法生成图片文件,提示:

     未找到类型“shape"的公共成员”RANGE"


另外,还有一个问题:在窗口代码碰到问题非正常退出后,系统中WORD进程仍在,必须在WINDOWS任务管理器中关闭,才能重新运行该窗口代码。

   请问,如何在窗口代码中加入相关内容,判断有无之前的WORD进程,如有先退出啊。





[此贴子已经被作者于2016/8/9 14:53:54编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/9 10:26:00 [只看该作者]

改一下

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\test.doc"
    Dim doc = app.Documents.Open(fileName)
   
    For Each shape As object In doc.InlineShapes
        If shape.Type = MSWord.WdInlineShapeType.wdInlineShapePicture
           
            Dim img As Byte() = shape.Range.EnhMetaFileBits
            Dim bmp As new Bitmap(new IO.MemoryStream(img))
            bmp.Save("d:\test456.jpg")
        End If
    Next
    For Each shape As object In doc.Shapes
       
        msgbox(shape.Type)
        If shape.Type = 13
            shape = shape.ConvertToInlineShape
            Dim img As Byte() = shape.Range.EnhMetaFileBits
            Dim bmp As new Bitmap(new IO.MemoryStream(img))
            bmp.Save("d:\test123.jpg")
        End If
    Next
    doc.saved = true
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try


 


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


加好友 发短信
等级:五尾狐 帖子:1074 积分:9872 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2017/8/17 19:31:00 [只看该作者]

袍版的代码非常好用,非常感谢!
现有一个问题:一个单位有十多个人,每个人有10个不同格式的word表格,所有人的10个word文档是一样格式的,请问这种能批量导入吗?
[此贴子已经被作者于2017/8/17 19:32:05编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1074 积分:9872 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2017/8/17 19:47:00 [只看该作者]

每个人一个目录

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


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

以下是引用bohe在2017/8/17 19:31:00的发言:
袍版的代码非常好用,非常感谢!
现有一个问题:一个单位有十多个人,每个人有10个不同格式的word表格,所有人的10个word文档是一样格式的,请问这种能批量导入吗?
[此贴子已经被作者于2017/8/17 19:32:05编辑过]

 

为什么不能批量导入?例子是单个文件,你多个文件,写成循环不就好了?


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


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

以下是引用bohe在2017/8/17 19:47:00的发言:
每个人一个目录

 

http://www.foxtable.com/webhelp/scr/0328.htm

 

http://www.foxtable.com/webhelp/scr/0359.htm

 


 回到顶部
总数 29 上一页 1 2 3 下一页