Несмотря на то, что изображения - это не то, что часто встречается в электронной таблице, все равно, очень здорово иметь возможность их добавлять. Изображения можно использовать как логотип компании, если XLSX-документ представляет собой прайс-лист или сделать электронные таблицы более личными.
Чтобы иметь возможность загружать изображения в электронную таблицу с помощью модуля openpyxl
, необходимо установить модуль Pillow
, если вдруг openpyxl
не подтянул все зависимости в момент установки.
# активируем виртуальное окружение # с установленным `openpyxl` $ source .venv/bin/activate # ставим модуль `Pillow` (VirtualEnv):~$ python3 -m pip install -U Pillow
Для примера можно взять любую картинку в формате .png
, пересохранить ее как logo.png
и скопировать в корневую папку, что бы пример работал:
from openpyxl import load_workbook from openpyxl.drawing.image import Image wb = Workbook() ws = wb.active # получаем объект изображения logo = Image("logo.png") # чтобы не заполнять весь лист логотипом # можно изменить размер, атрибутами объекта logo.height = 150 logo.width = 150 # добавляем объект изображение в ячейку "A3" sheet.add_image(logo, "A3") # сохраняем workbook.save(filename="hello_world_logo.xlsx")
Открываем сохраненный файл и смотрим что получилось. Левый верхний угол изображения находится в выбранной ячейке, в данном случае это 'A3'
.