Microsoft Excel часто используется не только для расчётов, но и как хранилище изображений — от скриншотов отчётов до фотографий товаров в прайс-листах. Однако стандартных инструментов для массового сохранения картинок из таблиц нет. Если вам нужно извлечь одну-две фотографии, достаточно скопировать их вручную, но что делать, когда в документе сотни встроенных изображений?
В этой статье разберём все актуальные способы сохранения фото из Excel — от базовых (подходящих новичкам) до продвинутых (с использованием макросов и сторонних утилит). Особое внимание уделим скрытым изображениям в ячейках, которые не видны при обычном просмотре, но занимают место в файле. Все методы протестированы на Excel 2019–2026 и Office 365 (включая веб-версию).
1. Ручное копирование через буфер обмена (самый простой способ)
Если изображений мало (до 10–15 штук), быстрее всего сохранить их через стандартные функции Windows. Этот метод не требует дополнительных программ и работает даже в защищённых корпоративных сетях, где запрещены макросы.
Алгоритм действий:
- 🖱️ Выделите изображение в Excel кликом мыши (должна появиться рамка с маркерами изменения размера).
- 📋 Нажмите
Ctrl + C(или правой кнопкой → Копировать). - 🖼️ Откройте любой графический редактор (Paint, Photoshop, даже Word) и вставьте изображение (
Ctrl + V). - 💾 Сохраните файл в нужном формате (
.png,.jpg).
⚠️ Внимание: Если при копировании в буфер попадает не само изображение, а ссылка на него (например, из вставленной через Вставка → Рисунок из файла), попробуйте сначала обрезать картинку в Excel (Формат → Обрезка), а затем копировать.
2. Сохранение через изменение расширения файла (для скрытых изображений)
Excel хранит встроенные изображения внутри файла в формате .xlsx (который на самом деле является ZIP-архивом). Этот метод позволяет извлечь все графические объекты, включая те, что не видны на листе — например, фоновые картинки или логотипы в заголовках.
Инструкция:
- Сделайте копию исходного файла Excel (на случай ошибки).
- Переименуйте расширение с
.xlsxна.zip(например,отчёт.xlsx→отчёт.zip). - Откройте архив через Проводник Windows или 7-Zip.
- Перейдите в папку
xl → media— здесь хранятся все изображения из документа. - Скопируйте файлы в удобное место и переименуйте их (по умолчанию они имеют вид
image1.png,image2.jpeg).
| Тип изображения в Excel | Папка в ZIP-архиве | Формат файла |
|---|---|---|
Вставленное через Вставка → Рисунок |
xl/media |
.png, .jpg, .jpeg |
| Фон ячейки или листа | xl/drawings (внутри XML) |
Требует ручного извлечения |
| Логотип в заголовке/подвале | xl/headers или xl/footers |
.png (чаще всего) |
| Диаграммы и фигур | xl/drawings/drawing1.xml |
Не сохраняются как изображения |
⚠️ Внимание: Если в папке media нет файлов, проверьте:
- 🔍 Были ли изображения вставлены как объекты (а не через ссылку).
- 📁 Не перепутали ли вы папку — иногда картинки хранятся в
xl/embeddings. - 🔄 Сохраняли ли файл в формате
.xlsx(в.xlsэтот метод не работает).
3. Экспорт через Word (для сохранения структуры документа)
Если важно сохранить не только изображения, но и их расположение относительно текста (например, в отчётах с иллюстрациями), удобнее экспортировать данные в Microsoft Word, а затем извлечь картинки оттуда.
Пошаговая инструкция:
- Выделите область с изображениями в Excel (или весь лист —
Ctrl + A). - Скопируйте её (
Ctrl + C). - Откройте новый документ Word и вставьте данные (
Ctrl + V). Выберите вариант «Сохранить исходное форматирование». - Сохраните файл Word в формате
.docx. - Переименуйте расширение на
.zipи откройте архив (как в предыдущем методе). Изображения будут в папкеword/media.
Преимущество этого способа — сохранение привязки изображений к тексту. Например, если в Excel фотография привязана к ячейке A1 с названием товара, в Word она останется рядом с этим текстом.
Почему не работает копирование через "Специальная вставка"?
При использовании Правка → Специальная вставка → Рисунок в Word вставляется растрированная версия изображения с низким разрешением (обычно 96 dpi). Этот метод подходит только для эскизов, но не для печати или дальнейшей обработки.
4. Автоматизация с помощью VBA (для массового извлечения)
Если вам регулярно приходится извлекать десятки или сотни изображений, ручные методы отнимают слишком много времени. В этом случае поможет макрос на VBA, который сохраняет все картинки из активного листа в выбранную папку.
Инструкция по настройке:
- Откройте файл Excel и нажмите
Alt + F11, чтобы запустить редактор VBA. - В меню выберите
Insert → Module. - Вставьте следующий код:
Sub ExportPictures()Dim shp As Shape
Dim i As Integer
Dim folderPath As String
' Задайте путь к папке для сохранения (замените на свой)
folderPath = "C:\ExportExcelImages\"
' Создать папку, если её нет
If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath
' Экспорт каждого изображения
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
i = i + 1
shp.Copy
With ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
.Paste
.Export folderPath & "Image_" & i & ".png", "PNG"
.Parent.Delete
End With
End If
Next shp
MsgBox "Экспорт завершён! Сохранено " & i & " изображений.", vbInformation
End Sub
- Замените путь
C:\ExportExcelImages\на нужный (папка должна существовать!). - Запустите макрос нажатием
F5или черезRun → Run Sub/UserForm.
⚠️ Внимание: Макрос сохраняет только видимые изображения (объекты Shape). Скрытые картинки (например, в ячейках через Формат ячеек → Заливка → Рисунок) требуют другого подхода — см. следующий раздел.
Запустить Excel с правами администратора|Включить поддержку макросов в Файл → Параметры → Центр управления безопасностью|Создать папку для экспорта изображений|Проверьте, нет ли в именах файлов кириллицы (может вызвать ошибку)-->
5. Извлечение изображений из ячеек (скрытые картинки)
В Excel есть малоизвестная функция вставки изображений непосредственно в ячейки через Формат ячеек → Заливка → Рисунок или текстура. Такие картинки не видны как отдельные объекты, но увеличивают размер файла. Чтобы их извлечь, понадобится Power Query или сторонние инструменты.
Способ 1: Через Power Query (встроен в Excel 2016+):
- 📊 Перейдите на лист с изображениями в ячейках.
- 🔄 Нажмите
Данные → Получить данные → Из таблицы/диапазона. - 🖼️ В открывшемся редакторе Power Query добавьте пользовательский столбец с формулой:
= Binary.From([Column1])(замените
Column1на имя столбца с картинками). - 💾 Экспортируйте данные в
.csvи откройте файл в блокноте — бинарные данные изображений будут внутри.
Способ 2: С помощью Online Excel Viewer (например, Aspose.Cells). Загрузите файл, и сервис покажет все встроенные изображения, включая скрытые.
6. Сторонние программы для массового экспорта
Если вам нужно регулярно извлекать изображения из десятков файлов Excel, проще использовать специализированные утилиты. Они поддерживают пакетную обработку и сохраняют метаданные (например, имена листов или координаты ячеек).
| Программа | Поддерживаемые форматы | Особенности | Стоимость |
|---|---|---|---|
| Excel Image Extractor | .xlsx, .xls |
Сохраняет привязку к ячейкам, поддерживает EMF |
Бесплатно |
| Kutools for Excel | .xlsx, .xlsm |
Интеграция в ленту Excel, пакетный экспорт | $39/год |
| Aspose.Cells | .xlsx, .xlsb, .ods |
API для разработчиков, поддерживает облако | От $799/год |
| OfficeRecover | Любые повреждённые файлы Excel | Восстанавливает изображения из битых файлов | $27/разово |
🔹 Совет: Перед использованием платных программ проверьте их на тестовом файле — некоторые утилиты сохраняют изображения в низком разрешении или обрезают прозрачность.
FAQ: Частые вопросы по извлечению изображений из Excel
Можно ли сохранить изображение из Excel в формате .svg?
Да, но только если исходное изображение было векторным (например, вставлено как Фигура или SmartArt). Для растровых картинок (.png, .jpg) придётся использовать конвертеры вроде Inkscape или Adobe Illustrator.
Почему при копировании из Excel в Word изображение теряет качество?
Excel по умолчанию копирует картинки с разрешением экрана (96–150 dpi). Чтобы сохранить оригинальное качество, используйте метод с переименованием в .zip или VBA-макрос из раздела 4.
Как извлечь логотип из шапки Excel, который не виден на листе?
Логотипы в заголовках/подвалах хранятся в папке xl/headers или xl/footers внутри ZIP-архива. Их можно извлечь только через переименование файла (метод 2) или с помощью Aspose.Cells.
Можно ли автоматизировать извлечение изображений из сотен файлов Excel?
Да, с помощью PowerShell или Python (библиотека openpyxl). Пример скрипта на Python:
from openpyxl import load_workbook
import os
folder_path = "C:/ExcelFiles/"
output_path = "C:/ExtractedImages/"
for file in os.listdir(folder_path):
if file.endswith(('.xlsx', '.xlsm')):
wb = load_workbook(os.path.join(folder_path, file))
for sheet in wb.worksheets:
for img in sheet._images:
with open(f"{output_path}{img.filename}", "wb") as f:
f.write(img._data())
print("Готово!")
Почему в папке media нет изображений, хотя они есть в файле?
Вероятные причины:
- Изображения вставлены как ссылки (проверьте в
Файл → Сведения → Связи). - Файл сохранён в формате
.xls(старый формат не поддерживает ZIP-структуру). - Картинки являются частью
SmartArtилиДиаграмм(их нужно экспортировать отдельно).