ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5326|回复: 6

[求助] 如何批量地把word中各类相同的图片替换成文字?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-2-28 23:00 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 chengf123 于 2015-3-1 10:13 编辑

文档中每一课有各类图片,并且在后面的各课也出现。
请指教:如何批量把word中各类相同的图片替换成文字?
每类图片换成各类的文字。
能教会我一次性同时(批量)选择相同的图片,然后每类进行替换文字也可以。

具体见附件,谢谢
替换图片.rar (566.54 KB, 下载次数: 35)



TA的精华主题

TA的得分主题

发表于 2015-3-4 16:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
替换做不到,如果相同图片的在上下文的相对位置有规律,也许还有办法

TA的精华主题

TA的得分主题

发表于 2015-3-5 20:33 | 显示全部楼层
测试了一下是可以做到的,用2007或以上版本保存为docx,用winzip或者winrar打开docx,替换document.xml中的相应位置。打开压缩包会发现该文档只有7个不同的图片,对应的id在替换图片.docx\word\_rels\document.xml.rels中,将id对应的位置替换为对应的文字就可以了。仅仅提供思路,图片不多就自己修改document.xml来解决,如果非常多,你可以在群里找高手帮你用代码解决。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-5 20:51 | 显示全部楼层
本帖最后由 chengf123 于 2015-3-5 20:55 编辑
cuteword 发表于 2015-3-5 20:33
测试了一下是可以做到的,用2007或以上版本保存为docx,用winzip或者winrar打开docx,替换document.xml中的 ...

看了这一堆代码,真的不知怎么换,“将id对应的位置替换为对应的文字”是怎么的,能不能再具体点?如image1.png换成“教法分析”是怎么换的


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId8" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image3.png"/><Relationship Id="rId13" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable" Target="fontTable.xml"/><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings" Target="webSettings.xml"/><Relationship Id="rId7" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image2.png"/><Relationship Id="rId12" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image7.png"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings" Target="settings.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/><Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image1.png"/><Relationship Id="rId11" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image6.png"/><Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes" Target="endnotes.xml"/><Relationship Id="rId10" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image5.png"/><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes" Target="footnotes.xml"/><Relationship Id="rId9" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image4.png"/><Relationship Id="rId14" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/></Relationships>

TA的精华主题

TA的得分主题

发表于 2015-3-5 21:07 | 显示全部楼层
比如,rId8会在document.xml中出现:<w:drawing>


-<wp:inline distR="0" distL="0" distB="0" distT="0">

<wp:extent cy="390525" cx="5334000"/>

<wp:effectExtent r="0" b="9525" t="0" l="0"/>

<wp:docPr name="图片 2" id="2"/>


-<wp:cNvGraphicFramePr>

<a:graphicFrameLocks noChangeAspect="1" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/>

</wp:cNvGraphicFramePr>


-<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">


-<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">


-<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">


-<pic:nvPicPr>

<pic:cNvPr name="Picture 2" id="0"/>


-<pic:cNvPicPr>

<a:picLocks noChangeAspect="1" noChangeArrowheads="1"/>

</pic:cNvPicPr>

</pic:nvPicPr>


-<pic:blipFill>


-<a:blip cstate="print" r:embed="rId8">


-<a:extLst>


-<a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}">

<a14:useLocalDpi val="0" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"/>

</a:ext>

</a:extLst>

</a:blip>

<a:srcRect/>


-<a:stretch>

<a:fillRect/>

</a:stretch>

</pic:blipFill>


-<pic:spPr bwMode="auto">


-<a:xfrm>

<a:off y="0" x="0"/>

<a:ext cy="390525" cx="5334000"/>

</a:xfrm>


-<a:prstGeom prst="rect">

<a:avLst/>

</a:prstGeom>

<a:noFill/>


-<a:ln>

<a:noFill/>

</a:ln>

</pic:spPr>

</pic:pic>

</a:graphicData>

</a:graphic>

</wp:inline>

</w:drawing>

替换所有这种包含rId8的区域中的位置(<w:drawing></w:drawing>范围中的,可能还有其它类型的,这些标记后面的标记是</w:r>,前面的标记是<w:r>)为对应的文本标记(比如<w:t>图3</w:t>)就可以实现对image3.png的替换。
替换完成后,把document.xml用修改后的文件替换掉,用word打开文档就可以了
你如果对正则表达式比较熟悉,利用文本替换工具,是比较容易手工实现的。如果非常多图片,在本论坛里找高手帮你用代码解决。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-3-5 21:24 | 显示全部楼层
本帖最后由 chengf123 于 2015-3-5 22:27 编辑
cuteword 发表于 2015-3-5 21:07
比如,rId8会在document.xml中出现:

1、包含rId8的区域中的位置是指:-<a:blip cstate="print" r:embed="rId8">句中含有rId8,所以<w:drawing></w:drawing>中的内容就是rId8对应位置吗?
2、是把<w:drawing>**</w:drawing>中的内容全删除替换成<w:t>图3</w:t>,还是怎样替换?
3、如果有</w:r><w:r>标志,同理2是吗?

本人实在是菜,看完上述文字还不是很明白,而且发现你上面这段文字在我解压的文件中是不同的。能不能把你替换前、后的文件上传一个?好让我对比研究下,谢谢。

TA的精华主题

TA的得分主题

发表于 2015-3-12 10:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
已经帮你写为程序,给你发了消息,请查收测试。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 10:07 , Processed in 0.022401 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表