Добавить в корзинуПозвонить
Найти в Дзене
SoftSAR

Вставка картинкок в excel python

В этой статье мы создадим полезную прикладную программу вставки изображений в таблицу Excel. Предназначение программы вставка изображений в таблицу Excel, , скачивание картинок по ссылке, обработка изображений перед вставкой в таблицу. Основные функции программы: Разработаем дизайн приложения в Qt дизайнере Сохраним дизайн приложения в файл .ui и конвертируем в файл .py. Более подробно о разработке и конвертации описано в статье Разработка современных графических интерфейсов с PySide2. Код дизайна формы. Для работы с Excel файлами нам потребуется библиотека openpyxl, для работы с изображениями потребуется библиотека Pillow, для скачивания картинок - requests. Устанавливаем необходимые библиотеки через командную строку: pip install openpyxl pip install Pillow pip install requests Импортируем необходимые модули и создаем структуру программы. Создаем функцию считывания листов книги Excel. Метод clear() очищается список листов книги, если он заполнен. Методом getOpenFileName() открывае

В этой статье мы создадим полезную прикладную программу вставки изображений в таблицу Excel.

Предназначение программы вставка изображений в таблицу Excel, , скачивание картинок по ссылке, обработка изображений перед вставкой в таблицу.

Основные функции программы:

  • вставка изображений из папки (поиск по имени файла)
  • вставка картинок по ссылкам из таблицы
  • сжатие изображений перед вставкой

Разработаем дизайн приложения в Qt дизайнере

-2

Сохраним дизайн приложения в файл .ui и конвертируем в файл .py. Более подробно о разработке и конвертации описано в статье Разработка современных графических интерфейсов с PySide2.

Код дизайна формы.

Для работы с Excel файлами нам потребуется библиотека openpyxl, для работы с изображениями потребуется библиотека Pillow, для скачивания картинок - requests.

Устанавливаем необходимые библиотеки через командную строку:

pip install openpyxl
pip install Pillow
pip install requests

Импортируем необходимые модули и создаем структуру программы.

Создаем функцию считывания листов книги Excel. Метод clear() очищается список листов книги, если он заполнен. Методом getOpenFileName() открываем диалоговое окно выбора файла, устанавливаем фильтрацию файлов по расширению. Получаем список всех листов книги и добавляем их в элемент ComboBox выпадающий список.

Создадим функцию проверки введенных в форму данных. Проверяем заполненность нужных полей, проверяем тип введенных данных для полей диапазон строк, проверяем правильность ввода имени колонки.

Пишем функцию скачивания картинок по ссылке. Функция принимает два параметра URL адрес картинки и название картинки. Методом get() объекта requests переходим по URL и открываем картинку. Методом write() сохраняем записываем картинку по указанному пути.

Перед загрузкой картинки в файл Excel, необходимо сжать картинку, чтобы оптимизировать размер файла Excel. Запрашиваем у пользователя качество загружаемого изображения (степень сжатия). Методом value объекта spbox_img получаем от пользователя значение степени сжатия. Открываем изображение с помощью библиотеки Pillow, используя свойство quality задаем степень сжатия изображения и сохраняем результат.

Помимо сжатия изображения, необходимо установить размеры изображения, чтобы изображение поместилось в ячейку таблицы. У пользователя запрашиваем ширину картинку. Пропорционально изменяем ширину и высоту картинки, задавая размеры через свойство width и height.

Загружаем обработанное изображение в ячейку таблицы. В переменную img_img записываем путь к нашей картинке, а в переменную column_image записываем название ячейки удалив лишние пробелы в начале и конце строки. Методом add_image() загружаем картинку в ячейку. Методами row_dimensions() column_dimensions() устанавливаем размеры ячейки высоту и ширину.

Итоговый продукт выполняет следующие функции скачивает изображение по URL ссылке, осуществляет предварительную обработку изображения, сжимая изображение и изменяет его размеры, загружает изображение в ячейку файла Excel. Данная небольшая программа может пригодится для автоматизации работы с Excel.

С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am