讲真,每次有人问我怎么把Excel里的图片弄出来,我脑子里都会闪过一幅画面:一个人对着屏幕,右手握着鼠标,脸上写满了“抓狂”两个大字,一下一下地右键、复制,再切到另一个软件里,粘贴。如果只有一两张图,那还行,算是手指的热身运动。可要是几十上百张呢?那简直就是一场对耐心和手腕关节的极限挑战。
所以,别再那么干了,求你了。那根本不叫工作,那叫修行。今天我就给你掰扯掰扯,这事儿到底有多少种解法,从青铜到王者的段位,总有一款适合你。
最原始,也最“笨”的方法:一张一张另存为
这个方法,我猜你肯定试过。
就是最直观的,在Excel里,右键点击你想要的那张图片,然后,在弹出的菜单里,你会看到一个选项,叫“另存为图片(S)...”。
点了它,弹出一个窗口,让你选保存的位置,给图片起个名字,还能选格式,什么PNG、JPG,随你喜欢。然后,点击“保存”。
搞定。一张图片到手了。
是不是很简单?简单到让人落泪。但它的问题也同样简单粗暴:它只能一张一张来。
想象一下,你的表格里嵌了五十张产品图。你要重复这个动作五十次。五十次右键,五十次点击“另存为图片”,五十次命名,五十次点击“保存”。这中间,你还得小心翼翼地确保没有漏掉哪一张,也没有重复保存哪一张。
干完这一票,我估计你再也不想看见Excel了。这种方法,只适用于图片数量极少,比如就三五张的情况。一旦数量上来,它就不是解决方案,而是新的问题本身。我们称之为“体力流”打法,效率极低,纯属折磨。
进阶玩法:另存为网页,让系统帮你干活
这招,就是很多“办公室老鸟”会偷偷藏起来的独门秘技了。它利用了Excel一个不太起眼的功能,但效果拔群,堪称批量导出图片的入门级神技。
操作起来,也是一气呵成:
- 打开你那个塞满了图片的Excel文件。
- 直接点击左上角的“文件”,然后选“另存为”。
- 在“另存为”的对话框里,最关键的一步来了!看到“保存类型”那个下拉菜单了吗?点开它,不要选默认的“Excel 工作簿 (.xlsx)”,而是往下拖,找到一个叫“网页 (.htm; .html)*”的选项。对,就是它,选中它!
- 选好保存位置,点“保存”。
这时候,你可能会看到一个提示,说“此工作簿中的某些功能在保存为网页后可能会丢失”,别慌,直接点“是”就行。我们只要图片,其他功能丢了就丢了。
现在,去你刚才选择的保存位置看看。你会发现,除了生成了一个.htm的网页文件,旁边还多出了一个同名的文件夹,后缀是“.files”。
请按捺住激动的心,颤抖着手,双击打开这个文件夹。
奇迹发生了!你Excel里的所有图片,不大不小,不多不少,全都整整齐齐地躺在这个文件夹里!系统已经帮你把它们全都提取出来了,还自动命好了名。
是不是觉得世界都清爽了?
这个方法的优点是一步到位,批量解决。不管你有十张图还是一百张图,操作都是一样的。缺点呢?偶尔会有。比如,导出的图片可能会被压缩,清晰度可能不如原始插入的图片。另外,它会导出工作簿里所有的图片元素,包括一些你可能不想要的图表、图形之类的。你需要自己再筛选一遍。但跟一张一张手动保存比起来,这点筛选工作简直就是天堂。
硬核玩家的终极奥义:修改扩展名,直捣黄龙
如果说“另存为网页”是聪明人的捷径,那下面这个方法,就是技术宅的浪漫。它有点“黑客”的感觉,但实际上安全无害,而且能让你拿到未经任何压缩的原图。
这招的核心思想是:我们今天所用的.xlsx格式的Excel文件,本质上,它其实是一个ZIP压缩包。
你没听错。它就是个披着Excel外衣的压缩文件。
知道了这个秘密,接下来的操作就跟探险一样刺激了:
- 首先,把你的Excel文件复制一份!这是保险措施,防止你手滑搞砸了原始文件。切记,永远在副本上操作。
- 找到这个副本文件,比如它叫“产品图册.xlsx”。现在,我们要做的就是,重命名它。
- 把文件的扩展名
.xlsx,直接改成.zip。对,就是改成压缩文件的扩展名。改完后文件名就变成了“产品图册.zip”。 - 系统会弹出一个警告,说什么“如果改变文件扩展名,可能会导致文件不可用”,别理它,勇敢地点“是”。
- 现在,你看看,那个Excel文件的图标是不是变成了一个压缩包的图标?双击它,或者右键用你的解压缩软件(比如WinRAR、7-Zip)打开。
你就进入了一个新世界。这里面有好几个文件夹,像什么_rels、docProps等等,别管它们。我们的目标只有一个,找到那个藏着宝藏的地方。
路径是这样的:xl -> media。
对,就是这个名叫media的文件夹。点进去。
看到了吗?所有!所有你插入到Excel里的原始图片,一张不少,原汁原味,没有任何压缩和失真,全都静静地躺在这里。它们的文件名可能是一串无意义的字符,比如“image1.png”、“image2.jpeg”,但内容绝对是你想要的。
现在,你只需要把这个media文件夹里的所有图片,全部解压或复制出来,就大功告成了。
这个方法的牛X之处在于,它能获取到最高质量的原始图片。这对于那些对图片清晰度有严格要求的场景,比如印刷、设计,简直是救命稻草。它唯一的“门槛”可能就是,你需要先在系统设置里打开“显示文件扩展名”的选项,不然你连.xlsx都看不到,更别提修改了。
终极自动化:VBA编程,一键搞定所有
如果上面几种方法你都觉得不过瘾,或者你需要频繁地、定制化地导出图片,那么,是时候祭出大杀器了——VBA(Visual Basic for Applications)。
这相当于你给Excel雇了一个贴身管家,你只需要下达一个指令,它就能任劳任怨地帮你把所有事情都办妥。
别被“编程”两个字吓到,对于这个需求,代码并不复杂。
操作步骤稍微多一点,但一劳永逸:
- 在Excel里,按下快捷键 Alt + F11,会打开一个叫“Microsoft Visual Basic for Applications”的窗口。这就是VBA的编辑器。
- 在窗口的左侧,找到你的工作簿名称,右键点击它,选择“插入” -> “模块”。
- 这时右边会出现一个空白的编辑区,把下面这段代码完整地复制粘贴进去:
```vb Sub ExportAllPictures() Dim shp As Shape Dim ws As Worksheet Dim FSO As Object Dim fPath As String Dim i As Long
' 创建一个文件夹用于存放导出的图片
fPath = ThisWorkbook.Path & "\Exported_Images\"
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(fPath) Then
FSO.CreateFolder fPath
End If
i = 1 ' 图片文件名计数器
' 遍历工作簿中的每一个工作表
For Each ws In ThisWorkbook.Worksheets
' 遍历工作表中的每一个形状对象
For Each shp In ws.Shapes
' 判断形状是否为图片
If shp.Type = msoPicture Or shp.Type = msoLinkedPicture Then
' 复制图片
shp.CopyPicture
' 创建一个临时的图表对象来粘贴和导出图片
With ws.ChartObjects.Add(0, 0, shp.Width, shp.Height)
.Activate
.Chart.Paste
' 导出为PNG格式,可以改为.Export fPath & "Image_" & i & ".jpg", "JPG"
.Chart.Export fPath & "Image_" & i & ".png", "PNG"
.Delete ' 删除临时图表
End With
i = i + 1
End If
Next shp
Next ws
MsgBox "所有图片已成功导出到 '" & fPath & "' 文件夹中!"
Set FSO = Nothing
End Sub ```
- 粘贴好代码后,关掉这个VBA编辑器窗口。
- 回到Excel主界面。按下快捷键 Alt + F8,会弹出一个“宏”对话框。
- 在列表里,你会看到一个叫“ExportAllPictures”的宏,选中它,然后点击“执行”。
稍等片刻,Excel会自动运行。运行结束后,会弹出一个提示框,告诉你“所有图片已成功导出”。
现在,回到你这个Excel文件所在的文件夹,你会发现多了一个叫“Exported_Images”的新文件夹。打开它,所有的图片都在里面,并且已经按照“Image_1”、“Image_2”这样的顺序为你命名好了。
VBA的强大之处在于高度的可定制性。你可以修改代码,让它只导出特定工作表的图片,或者按特定规则命名,甚至可以指定导出的图片尺寸和格式。一旦设置好,以后每次需要导出,只需要按一下快捷键运行宏,一切自动完成。这才是真正的效率之王。
好了,从最简单的右键,到聪明的另存为网页,再到硬核的改后缀,最后到万能的VBA。这四种方法,覆盖了从临时应急到专业高效的所有场景。下次再遇到需要从Excel里抠图的活儿,别再一张一张复制粘贴了,选一个适合你的段位,优雅地解决它。
【怎么把excel中图片导出】相关文章:
excel 单元格怎么表示12-06
excel中怎么填充序列填充12-06
怎么在excel中输入平方12-06
咱们今天聊点实在的,就聊Excel里的那个COUNTIF函数。12-06
excel表怎么设置保护密码12-06
excel表格中怎么把序号12-06
怎么把excel中图片导出12-06
excel数字怎么变成日期12-06
excel怎么做数据图12-06
怎么在excel中输入函数12-06
在excel中怎么计算年龄12-06
js打开excel文件怎么打开12-06
怎么是excel表格居中显示12-06