导出嵌入单元格图片的原图

创作者俱乐部成员
原理是,解压xlsx文件,解析xml获取图片与id的关系,导出原图,以嵌入单元格的那个id命名
所以用了最简单的批处理方式
复制代码,用记事本保存为bat文件,改一下需要处理的文件名,如果文件名是中文,最好保存成ansi编码的批处理,最后运行即可
🔔 | #ANSI编码&cls&powershell -Version 5.1 -NoLogo -NoProfile "gc '%~0'|out-string|iex"&pause&exit $f = 'a.xlsx' $z = ($f -split '\.')[0] + '.zip' rni $f $z Expand-Archive $z rni $z $f $x = [xml](gc .\a\xl\cellimages.xml) $d = @{} $x.SelectNodes('//*[local-name()="cellImage"]') | %{ $d[$_.SelectSingleNode('.//*[local-name()="cNvPr"]').name] = $_.SelectSingleNode('.//*[local-name()="blip"]').embed } $x = [xml](gc .\a\xl\_rels\cellimages.xml.rels) $h = @{} $x.SelectNodes('//*[local-name()="Relationship"]') | %{ $h[$_.Id] = './a/xl/' + $_.Target } $d.Keys | %{ $n = $h[$d[$_]] cp $n ($_ + '.' + ($n -split '\.')[-1]) } rm -Recurse ($f -split '\.')[0] |
写的比较粗,但意思到了,应该根据自己的需要再做修改
创作者俱乐部成员
创作者俱乐部成员