Foxtable(狐表)用户栏目专家坐堂 → [求助]如何用代码更换Word文件中的图片


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

主题:[求助]如何用代码更换Word文件中的图片

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


加好友 发短信
等级:童狐 帖子:201 积分:2085 威望:0 精华:0 注册:2018/5/4 14:45:00
[求助]如何用代码更换Word文件中的图片  发帖心情 Post By:2020/1/21 17:30:00 [只看该作者]

老师,你好!
如题,我有一word文件的工作模板,其中插入有一张图片,要根据不同条件更换成其他图片,不知如何写代码,望指教。谢谢!

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


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

不要提前插入图片,需要的时候再添加图片,参考:http://www.foxtable.com/webhelp/topics/2890.htm

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


加好友 发短信
等级:童狐 帖子:201 积分:2085 威望:0 精华:0 注册:2018/5/4 14:45:00
  发帖心情 Post By:2020/1/21 17:40:00 [只看该作者]

由于图片位置不固定,且要处于文字下方,所以提前放置图片,采用更换图片最好了

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/21 20:04:00 [只看该作者]

文字下方添加占位符,直接替换即可:

ReplaceWithImage方法,将指定的内容替换为图片,语法:

ReplaceWithImage(findstr,imagefile,width,height)

findstr: 字符型,指定要查找的内容
imgefile:字符型,用于替换的图片文件
width: 整数型,指定图片宽度
height:整数型,指定图片高度

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


加好友 发短信
等级:童狐 帖子:201 积分:2085 威望:0 精华:0 注册:2018/5/4 14:45:00
  发帖心情 Post By:2020/1/21 20:44:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:更换后.png
图片点击可在新窗口打开查看
老师,你好!
可能是我没写清楚,我将截图发给你,谢谢!

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


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


加好友 发短信
等级:童狐 帖子:201 积分:2085 威望:0 精华:0 注册:2018/5/4 14:45:00
  发帖心情 Post By:2020/1/21 20:45:00 [只看该作者]

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


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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/21 20:47:00 [只看该作者]

这种要按水印的方式添加,要使用vba:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=90243

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


加好友 发短信
等级:童狐 帖子:201 积分:2085 威望:0 精华:0 注册:2018/5/4 14:45:00
  发帖心情 Post By:2020/1/21 20:56:00 [只看该作者]

老师,是否可以用代码更换图片的方式实现?如行代码该如何写。谢谢!

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


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

Dim app As New MSWord.Application
try
    Dim fileName = "D:\问题\temp\变电所命名及开关柜编号.docx"
    Dim doc As object = app.Documents.Open(fileName)
    
    Dim img = "D:\问题\temp\背景2.jpg" '图片路径
    
    Dim Top As Integer = 0
    Dim left As Integer = 0
    Dim w As Integer = 0
    Dim h As Integer = 0
    
    For Each a As object In doc.Shapes
        Top = a.Top
        left  = a.left
        w = a.width
        h=a.height
        Output.Show(a.Top)
        Output.Show(a.left)
        a.delete
    Next
    
    Dim s = doc.Shapes.AddPicture(img, False, True,Top ,left ,w,h)
    s.WrapFormat.Type = MSWord.WdWrapType.wdWrapBehind
    Doc.save
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try

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


加好友 发短信
等级:童狐 帖子:201 积分:2085 威望:0 精华:0 注册:2018/5/4 14:45:00
  发帖心情 Post By:2020/1/22 9:06:00 [只看该作者]

老师,你好!
我测试了上述代码,出现两个问题:1、更换后图片位置发生了变化。2、如果word文件中有多个图片时,要换错,还有的图片被无辜删除。


 回到顶部
总数 15 1 2 下一页