from openpyxl_image_loader import SheetImageLoader
"""
Contains a SheetImageLoader class that allow you to loadimages from a sheet
"""
import io
import string
from PIL import Image
class SheetImageLoader:
"""Loads all images in a sheet"""
_images = {}
def __init__(self, sheet):
"""Loads all sheet images"""
sheet_images = sheet._images
for image in sheet_images:
row = image.anchor._from.row + 1
col = string.ascii_uppercase[image.anchor._from.col]
lists = self._images.get(f'{row}',[])
lists.append(image._data)
self._images[f'{row}'] = lists
def image_in(self, cell):
"""Checks if there's an image in specified cell"""
return cell in self._images
def get(self, cell):
"""Retrieves image data from a cell"""
if cell not in self._images:
raise ValueError("Cell {} doesn't contain an image".format(cell))
else:
images = []
for i in self._images[str(cell)]:
images.append(Image.open(io.BytesIO(i())))
return images