Разработка Python-модуля для заполнения Excel-шаблонов

Задача

Создать модуль на Python, который будет заполнять готовый Excel-шаблон (.xlsx) данными на основе конфигурационных файлов. Модуль должен аккуратно вписывать данные, не нарушая исходную структуру, форматирование и функциональность документа.

Требования к решению

Технический стек

  • Python версии 3.10 или выше.
  • Основная библиотека для работы с Excel: openpyxl.

Входные данные

  • template.xlsx - исходный шаблон файла.
  • data.json - словарь с данными для заполнения.
  • mapping.json - файл конфигурации, связывающий данные с ячейками в шаблоне.

Выходные данные

  • result.xlsx - итоговый заполненный файл (исходный шаблон должен оставаться неизменным).

Функциональность модуля

  • Заполнение одиночных значений: Внесение скалярных данных (числа, строки, даты) в конкретные ячейки, указанные в конфигурации.
  • Заполнение табличных блоков: Заполнение данными из списков в фиксированные диапазоны ячеек (табличные блоки). Шаблон содержит два таких блока.
  • Обработка типов данных: Корректное преобразование строковых представлений дат и чисел в соответствующие типы Excel.
  • Сохранение целостности шаблона: Все формулы, условное форматирование, стили и объединенные ячейки должны оставаться работоспособными.

Критически важные ограничения и правила

  • Запрещено изменять структуру листа: Нельзя вставлять или удалять строки/столбцы (insert_rows и аналогичные операции запрещены).
  • Фиксированные диапазоны для таблиц: Табличные блоки имеют заранее определенное максимальное количество строк (max_rows). Если данных меньше - незаполненные строки нужно очистить или скрыть (в зависимости от настройки). Если данных больше - заполняются только первые max_rows строк, остальные игнорируются.
  • Защита формул: Если целевая ячейка для записи содержит формулу - модуль должен считать это ошибкой конфигурации или шаблона и прекратить выполнение.
  • Работа с объединенными ячейками: Данные можно записывать только в верхнюю левую ячейку объединенного диапазона. Попытка записи в любую другую часть диапазона должна вызывать ошибку.
  • Совместимость: Итоговый файл должен корректно открываться и отображаться в популярных онлайн-редакторах таблиц (проверяется вручную).

Ожидаемые артефакты от исполнителя

  • Исходный код Python-модуля.
  • Файл README.md с инструкцией по установке и запуску.
  • Демонстрационный скрипт demo_fill.py, который наглядно показывает процесс заполнения шаблона.
  • Набор базовых модульных тестов (с использованием pytest), покрывающих три ключевых сценария:
    • Заполнение с пустыми списками данных.
    • Стандартное заполнение.
    • Сценарий, когда количество переданных данных превышает max_rows.

Разработка адаптивных и конверсионных карточек товаров для маркетплейса

Требуется дизайнер для создания современного, стильного и удобного дизайна карточек товаров. Карточки должны быть адаптивными, отображаться корректно на мобильных устройствах и десктопах, а также способствовать повышению продаж.

Разработка Telegram-бота для автоматической пересылки сообщений в WhatsApp

Требуется создать Telegram-бота, который будет автоматически получать сообщения из указанных каналов и отправлять их в заданные группы WhatsApp. Необходимо оценить расходы на сервисы и указать стек технологий.