Guides
How to Extract All Images from Excel (Named by Cell or Product Code)
Updated 2026-10-18
A product list with a photo next to every row, an inspection report full of site photos, a staff sheet with headshots: sooner or later you need the pictures as separate files, ideally named after the product code or person they belong to.
Method 1: save pictures one at a time
In Excel for Microsoft 365, right-click a picture and choose Save as Picture. It works, but only one picture at a time, and you type every file name yourself. Fine for three pictures, not for three hundred.
Method 2: rename the file to .zip
An .xlsx file is a ZIP archive.
- Make a copy of the workbook and change the extension from
.xlsx to .zip (turn on file name extensions in File Explorer first).
- Open the zip and go to
xl/media.
Every embedded image is there in its original quality. The catch: they are named image1.png, image2.jpeg and so on, in the order they were added, with no hint of which row or cell they belong to. Mapping them back means reading the drawing XML by hand.
Method 3: save as a web page
File → Save As → Web Page (*.htm) writes a folder next to the page with the images in it. The names are again generic (image001.png), and Excel may save resized copies rather than the originals.
Method 4: export them all, named by cell or code
xlszip's image export does the mapping for you:
- every image is exported byte for byte, no recompression, in its original format;
- files are named
sheet_cell (for example Products_B12.jpg), or, if you tick the option, after the first text in the same row, typically a product code, SKU or name (A1023.jpg); duplicates are numbered;
- a
清单_list.csv file lists the sheet, cell and row text of every image;
- pictures that WPS Office stored as in-cell images (
=DISPIMG(…)) are included.
You can pick several workbooks at once and download everything as a zip.
WPS in-cell images
If the workbook came from WPS Office and Excel shows =DISPIMG("ID_…",1) instead of pictures, the images are still in the file. Export them as above, or convert them into regular Excel pictures that stay anchored in their cells. See =DISPIMG in Excel for details.
Tips
- Name by row works best when the code or name sits in the leftmost filled column of each row.
- Pictures floating over several rows are named after the cell where their top-left corner sits.
- Pictures not tied to any cell (absolute position) are exported with a
未定位_ (unplaced) prefix.