Files
Excel-project2/README.md
2026-02-23 13:33:46 +03:00

4.3 KiB
Raw Blame History

Digitalization Project

Pet Проект предназначен для автоматической обработки Excel-отчетов из различных маркетплейсов (OZON, Yandex, WB), нормализации артикулов, расчета аналитических показателей и сохранения результатов с условным форматированием.


📁 Структура проекта

digitalization/
│
├─ handlers/
│   ├─  handler.py         # Классы BaseHandler и Handler для работы с Excel
│   └─  s_daemon.py        # Поиск файлов в директории input
│
├─ schema/
│   └─ pydantic.py        # Классы Settings, JsonRead, Translit
│
├─ input/                 # Папка для исходных файлов Excel
├─ output/                # Папка для сохранения обработанных файлов
├─ columns.json           # JSON-файл с настройками колонок для каждого маркетплейса
├─ run.py                 # Основной скрипт запуска обработки
└─ .env                   # Файл с настройками проекта (пути и шаблон артикула)

⚙️ Установка

  1. Клонировать репозиторий:
git clone <репозиторий>
cd digitalization
  1. Создать виртуальное окружение:
python -m venv .venv
  1. Установить зависимости:
pip install -r requirements

📝 Настройка

Создать .env файл в корне проекта:

INPUTDIR=./input
OUTPUTDIR=./output
PATTERN=[A-Z0-9]+

Создать columns.json с настройками колонок для каждого маркетплейса:

{
    "ozon": {
        "Артикул": 0,
        "Наименование": 1,
        "Выручка": 2,
        "Прибыль": 3,
        "Все_удержания_магазина": 4
    },
    "yandex": {
        "Артикул": 0,
        "Наименование": 1,
        "Выручка": 2,
        "Прибыль": 3
    }
}

🚀 Запуск

python run.py или make run

После обработки файлы будут сохранены в папку output/ с условным форматированием: • Колонки "Маржинальность" и "Прибыль" окрашиваются: • Красный для отрицательных значений • Зеленый для положительных значений

🛠️ Основные классы

BaseHandler
	•	Конструктор: __init__(file_path:str) — сохраняет путь к файлу
	•	Методы:
	•	struct() — возвращает структуру Excel (ExcelFile)
	•	read() — читает весь Excel в DataFrame

Handler(BaseHandler)
	•	get_articles_with_sales(columns: dict, sheet_name: str)
	•	Нормализация артикулов
	•	Группировка по артикулу
	•	Расчет дополнительных колонок:
	•	“Все удержания в %”
	•	“Всего заказано” и “Процент выкупа”
	•	“Маржинальность”
	•	Сортировка по колонке "Прибыль"
	•	Условное форматирование Excel (цвета)

Settings и JsonRead
	•	Settings — хранит конфигурацию проекта из .env
	•	JsonRead — загружает соответствие колонок для каждого маркетплейса из columns.json
	•	Translit — словарь для транслитерации кириллицы в латиницу

⚠️ Зависимости • Python ≥ 3.10 • pandas • openpyxl • pydantic, pydantic-settings • jinja2

🔧 Примечания • Файлы Excel должны иметь корректное название (ozon, yandex, wb) • Папки input и output создаются автоматически • Поддерживаются только Excel-файлы (.xlsx) “””