Excel图片导致文件过大时,可通过四步优化:一、用内置“压缩图片”功能统一降分辨率至Web(150 ppi)并删除剪裁区域;二、另存为.xlsb二进制格式提升编码效率;三、用Power Query外链图片路径并生成轻量缩略图;四、运行VBA脚本批量导出-压缩-重嵌入JPEG图片。

如果您在使用Excel处理包含大量图片的工作表时发现文件体积显著增大,这通常是由于嵌入的图片未经过压缩或以高分辨率原始格式保存所致。以下是针对Excel文件内图片进行批量压缩与尺寸优化的具体操作步骤:
一、使用Excel内置的“压缩图片”功能
Excel提供了原生的图片压缩工具,可对选中图片或工作表中全部图片统一应用分辨率降低与颜色模式优化,适用于Windows和macOS平台的Microsoft 365及Excel 2019以上版本。
1、点击任意一张图片,按住Ctrl(Windows)或Command(macOS)键并依次单击其他需压缩的图片,完成多选;或切换至“开始”选项卡,点击“查找与选择”→“选择对象”,再用鼠标框选全部图片。
2、右键所选图片,在弹出菜单中选择“设置图片格式”;或在“图片格式”选项卡中点击右侧小箭头打开格式窗格。
3、在右侧面板中展开“图片”选项,点击“压缩图片”按钮。
4、在弹出窗口中,取消勾选“仅对当前选定图片应用”以确保所有图片被处理;在“目标输出”下拉菜单中选择Web(150 ppi)或电子邮件(96 ppi);勾选删除图片的剪裁区域。
5、点击“确定”,系统将自动重采样并覆盖原图数据。
二、通过另存为“二进制格式”减少冗余存储
Excel默认以Open XML格式(.xlsx)保存,该格式采用ZIP压缩但不压缩图片流本身;而另存为Excel二进制格式(.xlsb)可对图片块实施更高效编码,尤其适合含百张以上图片的大型报表。
1、点击“文件”→“另存为”,在保存位置浏览窗口中点击右下角“工具”下拉箭头,选择“常规选项”。
2、返回另存为界面,在“保存类型”下拉列表中选择Excel 二进制工作簿 (*.xlsb)。
3、输入文件名,点击“保存”。
4、关闭当前.xlsx文件,重新打开刚保存的.xlsb文件,确认图片显示正常且文件大小下降明显。
三、借助Power Query预处理图片链接而非嵌入
当业务允许图片以外部引用方式存在时,可将原始图片统一存放于本地文件夹,并在Excel中仅保留路径字段;此方法彻底规避图片嵌入带来的体积膨胀,同时便于集中管理与更新。
1、将所有图片复制到同一文件夹内,确保文件名不含空格与特殊字符,例如命名为“img_001.jpg”、“img_002.png”。
2、在Excel中新建一列,输入对应图片的完整本地路径,如“C:\Reports\Images\img_001.jpg”。
3、选中该列,切换至“数据”选项卡,点击“从表格/区域”启动Power Query编辑器。
4、在Power Query编辑器中,选择该路径列,点击“转换”→“图像”→“从文件创建图像”,系统将生成缩略图列并自动压缩至适合屏幕显示的尺寸。
5、点击“关闭并上载”,新列将以轻量级图像对象形式插入工作表,原始大图仍保留在外部文件夹中。
四、使用VBA脚本批量导出-压缩-重嵌入图片
对于必须保留嵌入形态且需精确控制压缩参数的场景,可通过VBA调用系统GDI+接口实现逐图导出为JPEG、指定质量值(如70%)、再以低分辨率重插入,绕过Excel GUI压缩的粒度限制。
1、按Alt+F11打开VBA编辑器,右键“Normal”工程→“插入”→“模块”,粘贴已验证的图片批量压缩代码(含FileSystemObject与WIA.ImageProcess引用声明)。
2、修改脚本中的JPEG_Quality = 70与MaxPixelSize = 1200参数,适配企业内网带宽与打印需求。
3、返回Excel界面,按Alt+F8调出宏列表,选择刚添加的宏名称,点击“运行”。
4、脚本执行期间将在临时目录生成压缩后图片,并逐一替换原工作表中对应Shape对象的Fill效果,全过程无需人工干预。










