你是不是也遇到过这种情况?
老板甩过来一个Excel表格,里面密密麻麻嵌满了产品图、活动照片、或者各种截图。现在,他要你把这些图片全都弄出来,每张都得是独立的文件,还得是高清原图。
你点开那个Excel文件,像个塞满了宝贝却上了锁的古董箱子,里面的图片,看得见,摸不着,就是掏不出来。
那一刻,空气仿佛都凝固了。
你尝试了最原始的方法:右键单击图片,颤抖着找到那个“另存为图片”的选项。成功了!第一张出来了。你心中一阵窃喜。然后你看了看滚动条,表格下面还有几百张图……那一瞬间,你听到了自己心碎的声音。一张一张地手动保存?这哪里是工作,这简直是当代愚公移山,是对手指、耐心和精神状态的三重酷刑。
别问我怎么知道的,问就是泪两行。
所以,今天咱们不聊那些虚头巴脑的理论,就来点儿实在的,掰开揉碎了讲讲,怎么把Excel这个“图片监狱”给它撬开,把里面的“囚犯”——那些我们要的图片,一次性、成批量、原汁原味地给解救出来。
第一招:瞒天过海,另存为网页
这一招,可以说是最广为人知,也最简单快捷的“官方”骚操作。它利用了Excel的一个特性,就是可以把表格内容保存成一个网页。你想想,一个网页,它里面的图片是不是都得是独立的文件?对,逻辑就这么简单。
这招的核心就是,骗Excel说:“你别当自己是表格了,你现在是一个网站!”
具体怎么做?跟上我的节奏。
- 打开你那个装满了图片的Excel文件。深呼吸,告诉自己问题马上就能解决。
- 点击左上角的“文件”菜单,然后选择“另存为”。
- 这时候会弹出一个保存窗口,这是最关键的一步,敲黑板!在“保存类型”那个下拉菜单里,你得选“网页(.htm; .html)”。别选错了,不是“单个文件网页”,就要那个朴实无华的“网页”。
- 选好保存位置,比如桌面,给它起个名字,点击“保存”。
接下来,就是见证奇迹的时刻。
你会发现,在你保存的位置,除了生成一个.htm的网页文件外,还会自动冒出来一个同名的文件夹,后面通常带着_files或者.files的后缀。
比如你保存的文件叫“产品图”,那旁边就会多出一个叫“产品图_files”的文件夹。
不要犹豫,双击打开这个文件夹!
我的天!你会看到什么?所有,我是说所有在那个Excel里的图片,现在都安安静静、服服帖帖地躺在这个文件夹里了!一张不多,一张不少。而且它们都是以image001.jpg、image002.png这样的格式命名的,整整齐齐。
这招的优点是简单粗暴、无需任何技术,小白也能轻松上手。但它也有个小小的瑕疵,有时候如果原图是很高清的PNG,它可能会给你转成JPG或者GIF,可能会有那么一丁点的质量损失,或者透明背景丢失。不过对于绝大多数场景,这已经足够完美了。
第二招:釜底抽薪,修改后缀名
如果说第一招是“智取”,那这一招,简直就是“强攻”。它更直接,更暴力,也更能保证拿到100%的原始图片,连像素都不会动一下。
这招的原理,来自于一个很多人不知道的秘密:我们现在用的.xlsx格式的Excel文件,本质上,它不是一个单一的文件,而是一个压缩包!
是的,你没听错,它就是一个披着.xlsx外衣的.zip文件。
知道了这个底层逻辑,那事情就好办了。我们要做什么?撕开它的伪装,直接进去拿东西!
操作前,请务必听我一句劝:
备份!备份!一定先备份你的原始Excel文件!
因为我们要直接对文件动手术,万一失手了,原始文件可能就打不开了。复制一个副本出来再操作,这是成年人的基本素养。
好了,备份做好了,我们开干。
- 找到你的那个
.xlsx文件。 - 关键的一步来了:你需要让你的电脑显示文件的扩展名。很多电脑默认是隐藏的。
- 在Windows 10/11上,随便打开一个文件夹,点击顶部的“查看”选项卡,然后勾选“文件扩展名”那个框框。
- 做完这一步,你的文件名就会从“产品图”变成“产品图.xlsx”。
- 选中这个文件,按
F2重命名,或者右键选择“重命名”。把后面的后缀名.xlsx,直接改成.zip。 - 按下回车,系统会弹出一个警告,告诉你“如果改变文件扩展名,可能会导致文件不可用”,问你是否确认。别怕,要的就是这个效果!大胆地点击“是”。
- 你看,那个熟悉的Excel图标,瞬间变成了一个压缩包的图标。成功了一半!
- 现在,像打开任何一个普通的压缩包一样,双击它,或者右键用你的解压软件(比如WinRAR, 7-Zip)把它解压到一个新的文件夹。
解压后,你会得到一堆看起来很复杂的文件夹和.xml文件。别慌,这些都是Excel的“内脏”,我们不用管。
我们的目标只有一个,找到那个藏着图片的“宝藏”文件夹。
路径是:xl -> media
点进xl文件夹,再点进里面的media文件夹。
Bingo!
你梦寐以求的所有图片,原封不动、毫发无损地躺在这里。它们保持着最初被插入Excel时的原始格式和原始质量。如果是PNG,它就是PNG;如果是JPG,它就是JPG。没有任何压缩,没有任何转换。
这招的好处是能拿到绝对的原始文件,对于追求图片质量的人来说,是终极解决方案。缺点是操作稍微繁琐一点,需要改后缀名,还需要点胆量。但只要你备份了,就没什么好怕的。
第三招:终极武器,VBA代码
前面两招,已经能解决99%的问题了。但如果你是一个需要频繁、定期地从各种Excel里扒图片的人,或者你面对的表格结构极其复杂,图片数量成千上万,那么每次都手动改后缀或者另存为,也挺烦的。
这时候,就该请出我们的“终极自动化武器”——VBA宏。
别一听到“代码”两个字就头大。你不需要懂它,你只需要会复制粘贴就行。VBA就像是给Excel请的一个贴身管家,你把指令告诉它,它就能不知疲倦地帮你干活。
我们的指令就是:“去,把这个表里所有的图片,都给我存到D盘一个叫‘图片导出’的文件夹里。”
下面是操作步骤,深呼吸,跟着来:
- 还是那个Excel文件,先按快捷键
Alt + F11,这会打开一个叫“Microsoft Visual Basic for Applications”的窗口,也就是VBA编辑器。看起来很专业,别被它吓到。 - 在左侧的工程窗口,找到你的文件名,右键点击,选择“插入” -> “模块”。这时右边会出现一个空白的窗口,像一张白纸,等着你写字。
- 把下面这段代码,完整地复制粘贴到这个空白窗口里。
```vb Sub ExportImages() Dim shp As Shape Dim fso As Object Dim fldPath As String Dim i As Long
' 创建一个文件夹来存放图片,这里设置在D盘根目录,你可以自己改
fldPath = "D:\Excel导出的图片\"
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(fldPath) Then
fso.CreateFolder fldPath
End If
i = 1
' 遍历当前活动工作表里的所有形状
For Each shp In ActiveSheet.Shapes
' 判断这个形状是不是图片
If shp.Type = msoPicture Or shp.Type = msoLinkedPicture Then
' 复制图片
shp.CopyPicture
' 创建一个临时的图表对象来粘贴和导出图片
With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height)
.Chart.Paste
' 导出为PNG格式,你也可以改成.Export fldPath & "图片" & i & ".jpg", "JPG"
.Chart.Export fldPath & "图片" & i & ".png", "PNG"
.Delete ' 删除临时的图表
End With
i = i + 1
End If
Next shp
Set fso = Nothing
MsgBox "图片导出完成!共 " & i - 1 & " 张,已保存至 " & fldPath, vbInformation
End Sub ```
- 代码粘好了。你可以稍微看一下代码里的注释,
fldPath = "D:\Excel导出的图片\"这一行,就是指定图片保存的位置。你可以把它改成任何你想要的地方,比如"C:\Users\你的用户名\Desktop\导出的图\"。记得文件夹路径最后的斜杠\不能少。 - 现在,回到VBA编辑器,直接按键盘上的
F5键,或者点击工具栏那个绿色的“运行”小三角按钮。
然后呢?
然后就没然后了。
你只需要静静地等几秒钟(取决于图片数量),屏幕上会弹出一个提示框,告诉你“图片导出完成!”,并显示导出了多少张。
现在,你去你设定的那个文件夹看看,是不是所有图片都已经被妥善地保存好了?
VBA的强大之处在于一劳永逸。你可以把这个宏保存在你的个人宏工作簿里,以后任何Excel文件需要导出图片,只需要打开文件,运行一下这个宏,就搞定了。这对于需要处理大量重复性工作的人来说,简直是神器。
好了,三种方法,从易到难,从入门到精通,都交给你了。
- 另存为网页,是江湖小虾米的入门招式,简单快捷。
- 修改后缀名,是武林高手的进阶心法,直击本质。
- VBA宏,则是掌门人级别的绝世武功,一键制敌。
下次再有人扔给你一个塞满图片的Excel,你就可以微微一笑,从容不迫地在几分钟内把所有图片整整齐齐地交出去,留下一个深藏功与名的背影。
毕竟,工具是死的,人是活的。真正的高手,从不被工具所束缚。
【怎么导出Excel中的图片】相关文章:
怎么给excel文档设密码12-05
excel标记怎么做的12-05
别再一个个敲了。真的。12-05
excel表格的线怎么加粗12-05
excel怎么复制一行12-05
怎么导出Excel中的图片12-05
又来了,又是这个比例问题。12-05
excel排序时间怎么排序12-05
你有没有过这种绝望的体验?12-05
在excel中怎么输入函数12-05
excel保存txt文件怎么打开12-05
excel表怎么截长图12-05