Skip to main content

SheetPictureFinder is a pure Python utility for extracting images from Excel .xlsx files — specifically from worksheets and cell addresses. It parses the internal XML structure of Excel files and maps embedded images to their anchor locations.

Project description

📦 SheetPictureFinder

SheetPictureFinder is a pure Python utility for extracting images from Excel .xlsx files — specifically from worksheets and cell addresses. It parses the internal XML structure of Excel files and maps embedded images to their anchor locations.


✨ Features

  • ✅ Extract images anchored to specific cells (e.g., H2, H3)
  • ✅ Supports file paths and io.BytesIO streams
  • ✅ Lazy image loading — images loaded only when requested
  • ✅ List image-bearing cells by sheet or across workbook
  • ✅ Cross-platform temporary file handling
  • cleanup() method for managing resources

📦 Dependency

No need for openpyxl or openpyxl-image-loader. Just have your pillow installed.

pip install pillow

• Python 3.8+

📦 Installation

pip install sheetpicturefinder

🚀 Usage Example

from PIL import Image
from sheetpicturefinder import XLSXPictureFinder  # Replace with actual import path

# Load XLSX from file path
finder = XLSXPictureFinder("/Users/ss/Downloads/SampleFile.xlsx")

# 1. List all image cells in 'EXTERIOR' sheet
image_cells = finder.list_image_cells("EXTERIOR")
print("Image cells in 'EXTERIOR':", image_cells)

# 2. Load and display an image at a specific cell
if 'H2' in image_cells:
    image = finder.get_image("EXTERIOR", "H2")
    if image:
        image.show()
    else:
        print("No image found at EXTERIOR!H2")
else:
    print("H2 not in image cells for EXTERIOR")

# 3. List all image-containing cells across all sheets
all_images = finder.list_all_sheet_image_cells()
print("\nAll image cells in workbook:")
for sheet, cells in all_images.items():
    print(f"  {sheet}: {cells}")

# 4. Clean up temporary files
finder.cleanup()

🧰 API Reference

XLSXPictureFinder(xlsx_source) • xlsx_source: Path to .xlsx file or io.BytesIO stream

get_image(sheet_name, cell_address)PIL.Image or None

Loads and returns the image anchored at cell_address in sheet_name.

list_image_cells(sheet_name)List[str]

Returns a list of cell addresses that contain images in the given sheet.

list_all_sheet_image_cells()Dict[str, List[str]]

Returns all sheets and their image-bearing cells:

{
    'EXTERIOR': ['H2', 'H3'],
    'APPLIANCES': ['H4']
}

📘 License

MIT License — free to use, modify, and distribute.

🧠 Author’s Note

This library bypasses heavyweight Excel parsing and directly inspects the underlying structure of .xlsx files. It’s optimized for performance, memory, and flexibility — ideal for image extraction in automation pipelines or reporting tools.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sheetpicturefinder-1.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sheetpicturefinder-1.1.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file sheetpicturefinder-1.1.0.tar.gz.

File metadata

  • Download URL: sheetpicturefinder-1.1.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for sheetpicturefinder-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a0df2b6289913dcc2817680ac3a9cc02e70120434ff4cd01a682a04327769185
MD5 0d27ccecaa787a634c6c62791e6e77bf
BLAKE2b-256 76ed84f0e464c281cad40078480abfed10abb0f839edc3be68700d5a9fabf666

See more details on using hashes here.

File details

Details for the file sheetpicturefinder-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sheetpicturefinder-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e837b2ba7beb2e183c04865b23bba98930e27ea4b2f4475aa3544ef36ff79a8e
MD5 cc53f55a6590d691ac02f846283c6bdc
BLAKE2b-256 c2fe1362f95b1731427d494c0368e68c3cd70b29bdc0034a41247f454815f792

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page