调用wps表格将嵌入图片导出并重命名
1.动作第一次运行需要运行两次,第一次运行会在桌面创建一个C:\Users\Administrator\Desktop\tp\文件夹,之后就可以正常运行,在此文件中查看重命名后导出的图片
2.动作会将当前活动工作表中全部浮动的图片,嵌入到单元格里,,可能会转换失败,最好提前手动转换一下
function 全选浮动图片(){ActiveSheet.Shapes.SelectAll()},手动转换方式,先运行js宏代码全选浮动图片,再点击鼠标右键,选图片嵌入单元格
提供一种运行更稳定方式,需要设置一下自定义快捷键,把图片嵌入单元格设置为(Alt+7),这样就可以稳定的运行动作,提高稳定行和快捷性,如图:
3.选择数据的格式:需要选择数据,第一行需要添加一个标题(如:tpm,tpid,),
要命名图片名称的那行标题要为:tpm (必须 图片名首字母)
要导出嵌入图片那行标题要为:tpid (必须 图片id首字母)
其他数据列随便就行,但必须要有标题

原理是将工作薄另存为zip文件,解压zip文件,从.\xl\cellimages.xml文件、.\xl\_rels\cellimages.xml.rels文件里提取相关信息,找到规则
(自己琢磨的的规则,可能结果需要数据验证,我试的几种情况是可以成功的)
规则如下:
<etc:cellImage>
<xdr:pic>
<xdr:nvPicPr>
<xdr:cNvPr id="85" name="ID_25A87EFEE18048FFA509A9989B61063E" descr="tuff"/>
<xdr:cNvPicPr>
<a:picLocks noChangeAspect="1"/>
</xdr:cNvPicPr>
</xdr:nvPicPr>
<xdr:blipFill>
<a:blip r:embed="rId1"/>
<a:stretch>
<a:fillRect/>
</a:stretch>
</xdr:blipFill>
<xdr:spPr>
<a:xfrm>
<a:off x="3264535" y="1884045"/>
<a:ext cx="424180" cy="285115"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</xdr:spPr>
</xdr:pic>
</etc:cellImage>
<etc:cellImage>
<xdr:pic>
<xdr:nvPicPr>
<xdr:cNvPr id="84" name="ID_6ACD9F8840B2438C8720604924A4B334" descr="tuff"/>
<xdr:cNvPicPr>
<a:picLocks noChangeAspect="1"/>
</xdr:cNvPicPr>
</xdr:nvPicPr>
<xdr:blipFill>
<a:blip r:embed="rId2"/>
<a:stretch>
<a:fillRect/>
</a:stretch>
</xdr:blipFill>
<xdr:spPr>
<a:xfrm>
<a:off x="3278505" y="684530"/>
<a:ext cx="396240" cy="276225"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</xdr:spPr>
</xdr:pic>
</etc:cellImage>
<etc:cellImage>
以上是.\xl\cellimages.xml文件原数据样式
<<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image2.png"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image1.png"/></Relationships>
以上是\xl\_rels\cellimages.xml.rels文件原数据样式
name="ID_25A87EFEE18048FFA509A9989B61063E" embed="rId1" Id="rId1" Target="media/image1.png"
name="ID_6ACD9F8840B2438C8720604924A4B334" embed="rId2" Id="rId2" Target="media/image2.png"
以上是重要信息
规则为:
1name为图片嵌入单元格中的加载id信息, embed为图片名字的排列顺序
如 rId1表示解压文件夹里的media\image1.png rId2表示解压文件夹里的media\image2.png
2以此类推 这样就可以根据这两个相关信息,建立两个字典映射如下: {"ID_25A87EFEE18048FFA509A9989B61063E":"rId1","ID_6ACD9F8840B2438C8720604924A4B334":"rId2"},
{"rId2":"media/image2.png","rId1":"media/image1.png"} 用来重命名
